如何在 EF 4.3 中使用具有复杂键的 AddOrUpdate 为数据设定种子

本文关键字:AddOrUpdate 复杂 数据 种子 EF | 更新日期: 2023-09-27 18:31:36

我正在尝试用一些测试数据为开发数据库播种。

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

有另一个需要播种的表,其中我不知道主键。

例如,我想根据名字和姓氏匹配来添加或更新。

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

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

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

如何在 EF 4.3 中使用具有复杂键的 AddOrUpdate 为数据设定种子

试试这个:

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

如果您因为使用导航属性而获得Only primitive types or enumeration types are supported in this context. - 请考虑将外键属性直接添加到实体(可能仅使用 getter)并按照 Ladislav Mrnka 的建议使用它。