我有一个项目,我正在使用现有数据库并将存储过程转换为Entity Framework存储库。我遇到了很多设置实体关系的问题。我无法改变数据库的结构,因此我必须在代码中找到解决方案。
假设我有一个客户端表和一个Notes表。客户与Notes有一对多的关系。
在客户端中,我有一个名为Client_Id(主键)的字段,在Notes表中我有一个Note_Id和一个Account_ID。 Clients.Client_Id映射到Notes.Account_Id。
现在,在具有相同键值的表中,我可以创建ICollection,Enity将创建关系。但由于名称不同,并且没有外键可以映射如何使其工作?
感谢。
答案 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;}
}