Próbuję wypełnić bazę danych programistycznych z danymi testowymi.
Użyłem context.People.AddOrUpdate(p => p.Id, people));
z dużym powodzeniem.
Mam inną tabelę, którą muszę zasiać, w której nie znam klucza podstawowego.
Na przykład chciałbym AddOrUpdate na podstawie dopasowania imienia i nazwiska.
Nie jestem pewien, jak poprawnie napisać wyrażenie.
context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);
jest oczywiście niepoprawny, ale mam nadzieję, że zapewnia rozwiązanie, którego szukam.
c#
entity-framework-4.3
seed
linq-expressions
ef-migrations
Keith Sirmons
źródło
źródło
context.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)
?context.People.AddOrUpdate(p => new { p.Birthdate }, people)
?Jeśli otrzymałeś z
Only primitive types or enumeration types are supported in this context.
powodu używania właściwości nawigacji - rozważ dodanie własności klucza obcego bezpośrednio do encji (może tylko z getter) i użyj jej tak, jak zaproponował Ladislav Mrnka .źródło
code first
podejściu? Mam strukturę jakcontext.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)
? To możliweThe specified type member 'NameId' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.