Estou tentando semear um banco de dados de desenvolvimento com alguns dados de teste.
Tenho usado context.People.AddOrUpdate(p => p.Id, people));
com muito sucesso.
Tenho outra tabela que preciso semear, na qual não saberia a chave primária.
Por exemplo, eu gostaria de AddOrUpdate com base na correspondência de nome e sobrenome.
Não tenho certeza de como escrever a Expressão corretamente.
context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);
está obviamente incorreto, mas espero que transmita a solução que procuro.
c#
entity-framework-4.3
seed
linq-expressions
ef-migrations
Keith Sirmons
fonte
fonte
context.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)
?context.People.AddOrUpdate(p => new { p.Birthdate }, people)
?Se você entendeu
Only primitive types or enumeration types are supported in this context.
por usar a propriedade de navegação - considere adicionar a propriedade de chave estrangeira diretamente à entidade (talvez apenas com getter) e use-a como Ladislav Mrnka propôs.fonte
code first
abordagem? Eu tenho estrutura comocontext.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)
? É possívelThe specified type member 'NameId' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.