如何使用EF 4.3中的复杂密钥使用AddOrUpdate对数据进行种子设定

时间:2012-04-19 18:57:03

标签: c# entity-framework-4.3 seed linq-expressions ef-migrations

我正在尝试使用一些测试数据来开发数据库。

我使用context.People.AddOrUpdate(p => p.Id, people));取得了很大的成功。

我有另一张桌子需要播种,其中我不知道主键。

例如,我希望AddOrUpdate基于匹配的First和Last名称。

我不确定如何正确编写表达式。

context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);

显然不正确,但我希望它能传达我正在寻找的解决方案。

2 个答案:

答案 0 :(得分:198)

试试这个:

context.People.AddOrUpdate(p => new { p.FirstName, p.LastName }, people);

答案 1 :(得分:1)

如果由于使用导航属性而得到Only primitive types or enumeration types are supported in this context. - 请考虑直接向实体添加外键属性(可能仅使用getter)并将其用作 Ladislav Mrnka 提议。