我正在使用包含"Contacts" : Id, FirstName, LastName, MobileNumber
等表格的数据库的现有项目。
我现在想要实现一个表格,我可以将这些联系人链接在一起。我已经构建了一个名为contactMatches: Id, contact1, contact2
的类,其中contact1
和contact2
应该作为FK链接到contactId列。我正在考虑使用实体框架Modelbuilder.Entity
功能为表示类的表创建数据关系。
我对数据库设计和实体框架比较陌生。这可以在一个链接表中完成,还是需要沿着不同的路径进行?
我考虑的另一个路由是创建表,只存储contact1
和contact2
作为整数,因为它只在交叉引用数据库中的其他表时使用。这看起来很糟糕,因为contactMatches
表可能包含不存在的contactId,因此需要对此进行保护....
什么是做我想要的最好的方法,任何想法?
谢谢, JK
答案 0 :(得分:0)
您可以覆盖OnModelCreating方法
modelBuilder.Entity<Contacts>()
.HasMany(e => e.ContactMatches1)
.WithRequired(e => e.Contact1)
.HasForeignKey(e => e.Id);
modelBuilder.Entity<Contacts>()
.HasMany(e => e.ContactMatches2)
.WithRequired(e => e.Contact2)
.HasForeignKey(e => e.Id);
前提是ContactMatches1 + 2是Contacts类
中的导航属性public virtual ICollection<ContactMatches> ContactMatches1 { get; set; }