У меня есть поставщик-поставщик, каждый объект-поставщик может ссылаться на другой объект-поставщик как на его родителя.Entity Framework 4.1 Code First - Невозможно удалить взаимосвязь между двумя объектами
public class Supplier
{
public int? Id { get; set; }
public virtual Supplier Parent { get; set; }
}
Это все работает как ожидается, пока я не попытаюсь удалить отношения, так как у этого поставщика больше нет родителя. Я могу изменить его с нуля на конкретного поставщика, и я могу установить его для другого поставщика, но установка его в null не сохраняется после SaveChanges().
supplier.Parent = null;
Внешний ключ «ParentId» в таблице «Поставщик» установлен как обнуляемый. Явное определение отношений не помогает.
modelBuilder.Entity<Supplier>().HasOptional(s => s.Parent).WithMany();
Уверен, что мне не хватает чего-то очевидного.
Мы не используем свойства внешнего ключа i.e ParentId – SeeNoWeevil
Есть ли веские причины не делать этого? –
У меня была такая же проблема, и Стивен прав, вы должны определить внешний ключ. См. Сообщение Артура Викерса здесь: http://social.msdn.microsoft.com/Forums/en-US/adonetefx/thread/35e7438b-ec1f-4d1f-bca0-539ccfb9abb1/ – Marthijn