Я пытаюсь заполнить базу данных разработки некоторыми тестовыми данными.
Я использовал context.People.AddOrUpdate(p => p.Id, people));
с большим успехом.
У меня есть еще одна таблица, которую мне нужно заполнить, в которой я не знаю первичный ключ.
Например, я хотел бы добавить AddOrUpdate на основе совпадения имени и фамилии.
Я не уверен, как правильно написать выражение.
context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);
явно неверно, но я надеюсь, что он передает решение, которое я ищу.
c#
entity-framework-4.3
seed
linq-expressions
ef-migrations
Кейт Сирмонс
источник
источник
context.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)
?context.People.AddOrUpdate(p => new { p.Birthdate }, people)
?Если вы попали
Only primitive types or enumeration types are supported in this context.
из-за использования свойства навигации - рассмотрите возможность добавления свойства внешнего ключа непосредственно к сущности (возможно, только с помощью геттера) и используйте его, как предложил Ладислав Мрнка .источник
code first
подход свойство навигации другого внешнего ключа таблицы ? У меня структура нравитсяcontext.People.AddOrUpdate(p => new { p.Name.FirstName, p.Name.LastName }, people)
? Это возможноThe specified type member 'NameId' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.