How to seed data with AddOrUpdate with a complex key in EF 4.3

C#Entity Framework-4.3SeedLinq ExpressionsEntity Framework-Migrations

C# Problem Overview


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.

C# Solutions


Solution 1 - C#

Try this:

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

Solution 2 - C#

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKeith SirmonsView Question on Stackoverflow
Solution 1 - C#Ladislav MrnkaView Answer on Stackoverflow
Solution 2 - C#lukyerView Answer on Stackoverflow