实体框架与现有数据的关系

本文关键字:数据 关系 框架 实体 | 更新日期: 2023-09-27 18:07:31

我有一个项目,我正在使用现有数据库并将存储过程转换为实体框架存储库。我在设置实体关系时遇到了不少问题。我无法改变数据库的结构,所以我必须在代码中找到解决方案。

假设我有一个Clients表和一个Notes表。客户机与Notes之间是一对多的关系。

在Clients中,我有一个名为Client_Id(主键)的字段,在Notes表中,我有一个Note_Id和一个Account_ID。客户。

Client_Id映射到Notes.Account_Id。

现在,在具有相同键值的表中,我可以创建一个ICollection,而entity会很好地创建这个关系。但由于名称不同,没有外键映射,我如何让它工作?

谢谢。

实体框架与现有数据的关系

您应该能够使用Data Annotations或Fluent API配置这些映射。下面是如何使用注释的示例:

[Table("Clients")]
class Client 
{
  [Key]
  public int Client_Id {get;set;}
  public virtual ICollection<Note> Notes {get;set;}
}
[Table("Notes")]
class Note 
{
  [Key]
  public int Note_Id {get;set;}
  public int Account_Id {get;set;}
  [ForeignKey("Account_Id")]
  public virtual Client Client {get;set;}
}