实体框架6特定列映射

时间:2017-07-25 17:26:26

标签: c# sql-server entity-framework ef-migrations

在SQL中,我会告诉数据库外键约束是什么。

但是流利的EF6显然无法指定在绑定集合时使用哪个列。

是不是可以告诉DbModelBuilder究竟是哪个列绑定关系?或者它是否始终要求成为主键?

Table_Person id int // pkey. Multiple people records UniqueID int // the unique person sometext varchar(256) // database therefore tracks changes to this, since unique person can have many records (pkeys).

Table_Address id int //pkey fk_unique int // should map to UniqueID of person, NOT the pkey. line1 varchar(512) state varchar(64) etc 一个独特的人有很多记录,他们的uniqueID(不是pkey)有很多相关的地址。实际结构要复杂得多。但我正在寻找一种从根本上做到这一点的方法......

非常希望在ICollection<Address> Addresses模型中拥有Persons。但是为代码优先迁移启用这样的东西......似乎不可能? 是的我可以Add-Migration然后手动修改生成的代码/ sql。但这难道不是这一点吗?或者这是常见做法吗?

1 个答案:

答案 0 :(得分:1)

如果您能够修改数据库架构,您可以将人们的UniqueID放入他们自己的名为&#34; Person&#34;并将现有表重命名为&#34; PersonVersion&#34;。然后让FK成为新的&#34; Person&#34;表格&#34; PersonVersion&#34;和&#34;地址&#34;。最后,在应用程序代码中创建Person,PersonVersion和Address模型,EF应该没有问题地绑定。