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.
The Seed method takes the database context object as an input parameter, and the code in the method uses that object to add new entities to the database. To seed data into your database, you need to override the Seed method.
This seed() method in configuration. cs is called when you run update-database in the Package Manager Console. It's also called at application startup if you change Entity Framework to use the MigrateDatabaseToLatestVersion database initializer.
Try this:
context.People.AddOrUpdate(p => new { p.FirstName, p.LastName }, people);
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With