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

时间:2015-08-11 16:20:55

标签: c# entity-framework

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

假设我有一个客户端表和一个Notes表。客户与Notes有一对多的关系。

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

现在,在具有相同键值的表中,我可以创建ICollection,Enity将创建关系。但由于名称不同,并且没有外键可以映射如何使其工作?

感谢。

1 个答案:

答案 0 :(得分:2)

您应该能够使用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;}
}