Ответ 1
Попробуйте следующее:
context.People.AddOrUpdate(p => new { p.FirstName, p.LastName }, people);
Я пытаюсь засеять базу данных разработки некоторыми тестовыми данными.
Я использовал context.People.AddOrUpdate(p => p.Id, people));
с большим успехом.
У меня есть другая таблица, которую мне нужно засеять, в которой я бы не знал первичный ключ.
Например, я хотел бы добавить AddOrUpdate на основе соответствия First и Last.
Я не уверен, как правильно писать выражение.
context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);
очевидно, неверен, но я надеюсь, что он передает решение, которое я ищу.
Попробуйте следующее:
context.People.AddOrUpdate(p => new { p.FirstName, p.LastName }, people);
Если вы получили Only primitive types or enumeration types are supported in this context.
из-за использования свойства навигации - рассмотрите возможность добавления свойства внешнего ключа непосредственно к сущности (возможно, только с помощью getter) и используйте его в качестве предложения Ladislav Mrnka.