Estoy tratando de sembrar una base de datos de desarrollo con algunos datos de prueba.
Lo he usado context.People.AddOrUpdate(p => p.Id, people));con mucho éxito.
Tengo otra tabla que necesito sembrar, en la que no sabría la clave principal.
Por ejemplo, me gustaría AddOrUpdate en función de la coincidencia de los nombres y apellidos.
No estoy seguro de cómo escribir la expresión correctamente.
context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);
es obviamente incorrecto, pero espero que transmita la solución que estoy buscando.
c#
entity-framework-4.3
seed
linq-expressions
ef-migrations
Keith Sirmons
fuente
fuente

context.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)?context.People.AddOrUpdate(p => new { p.Birthdate }, people)?Si lo consiguió
Only primitive types or enumeration types are supported in this context.debido al uso de la propiedad de navegación, considere agregar la propiedad de clave externa directamente a la entidad (tal vez solo con el getter) y úsela como propuso Ladislav Mrnka .fuente
code firstenfoque? Tengo estructura comocontext.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)? Es esto posibleThe specified type member 'NameId' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.