问题
I am trying to seed a development database with some test data.
I have used context.People.AddOrUpdate(p => p.Id, people));
with much success.
I have another table that I need to seed, in which I would not know the primary key.
For example, I would want to AddOrUpdate based on the First and Last names matching.
I am unsure how to write the Expression correctly.
context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);
is obviously incorrect, but I hope it conveys the solution I am looking for.
回答1:
Try this:
context.People.AddOrUpdate(p => new { p.FirstName, p.LastName }, people);
回答2:
If you got Only primitive types or enumeration types are supported in this context.
because of using navigation property - consider adding foreign key property directly to the entity (maybe only with getter) and use it as Ladislav Mrnka proposed.
来源:https://stackoverflow.com/questions/10234912/how-to-seed-data-with-addorupdate-with-a-complex-key-in-ef-4-3