0
我有以下的遺留代碼片段我不能改變:遺留代碼:代碼首先一對一或零關係
public class EntityA
{
int SeqId { get; set; } //Not part of the key
[Association("EntityB", "Seq_ID", "Seq_ID")]
public EntityB EntityB { get; set; }
}
public class EntityB
{
[Key]
int SeqId { get; set; }
}
數據庫是通過SQL創建並且不與實體框架。沒有外鍵 鍵和關係處理爲一對一/零。
現在,我們必須首先使用模型代碼,並且實體框架添加外鍵關係。 由於我無法更改模型,但我可以覆蓋OnModelCreating事件,我想要 重寫關係從必需到可選。我試圖添加
modelBuilder.Entity<EntityA>().Property(i => i.EntityB).IsOptional();
和
modelBuilder.Entity<EntityA>().HasOptional(i => i.EntityB).WithOptionalDependent()
但在這兩種情況下,實體框架抱怨。
什麼是例外?數據庫中的「Seq_ID」是否可以空? – haim770
我得到的例外: _多重性與角色'EntityA_EntityB_Target'中關係'EntityA_EntityB'中的參照約束衝突。 因爲從屬角色中的所有屬性都是不可空的,所以主體角色的多重性必須爲'1'._ Seq_ID不爲空,並且可悲的是我無法更改它。 – StefanG