我在我的項目中使用EF7 rc2。 有兩個相關的類EF7將子對象設置爲null問題
public sealed class Member
{
......
public MemberState State { get; set; }
}
public sealed class MemberState
{
public Guid Id { get; set; }
public Org Org { get; set; }
....
}
和EF配置:
modelBuilder.Entity<MemberState>(entity =>
{
entity.ToTable("State");
entity.HasKey(e => e.Id);
entity.Property<Guid>("Idf_Org");
entity.HasOne(e => e.Org).WithMany().HasForeignKey("Idf_Org");
.....
});
modelBuilder.Entity<Member>(entity =>
{
entity.HasKey(e => e.Id);
entity.Property<Guid>("Idf_State");
entity.HasOne(member => member.State).WithMany().HasForeignKey("Idf_State");
});
因此,在一段時間內我whant設置爲null,組織場MembersState。
mwmbwe.State = new MemberState()
{
Id = Guid.NewGuid(),
....
Org = null
};
_provider.SaveChanges();
將更改保存到數據庫時發生異常。 EF試圖插入相關組織項目與空PK。 有什麼辦法可以把它弄明白嗎?
也tryed解決直接ExecuteSqlCommand這個問題,而且不是從EF提供商獲取新MemberState,但它引發的異常過:「對象引用不設置到對象的實例」
在數據庫領域,包含Idf_Org標記爲「允許空值」
這是正確的,其他(更好)的方法是有您的* MemberState *對象上的可空FK屬性映射到* Idf_Org *,而不是將其映射。 –