Я справляюсь с кодом EF4 сначала, и симпатия его до сих пор. Но я испытываю затруднения при отображении объекта на таблицу с составным первичным ключом.
Конфигурация, которую я попробовал, похожа на это:
public SubscriptionUserConfiguration()
{
Property(u => u.SubscriptionID).IsIdentity();
Property(u => u.UserName).IsIdentity();
}
Который выдает это исключение: Не мог вывести ключ для объекта вводят 'SubscriptionUser'.
Что я пропускаю?
Вы также можете использовать
HasKey(u => new { u.SubscriptionID, u.UserName });
Edit:
Одно ограничение, которое я обнаружил, заключается в том, что следующее не работает:
public ProjectAssignmentConfiguration()
{
HasKey(u => u.Employee.EmployeeId);
HasKey(u => u.Project.ProjectId);
}
или
public ProjectAssignmentConfiguration()
{
HasKey(u => new { u.Employee.EmployeeId, u.Project.ProjectId });
}
Итак, как вы настроить объект, в котором объединенная таблица имеет первичный ключ, который является состоит из внешних ключей?
Решено: я должен использовать HasKey, а не Identity. Это работает:
public SubscriptionUserConfiguration()
{
HasKey(u => u.SubscriptionID);
HasKey(u => u.UserName);
}