3
使用EF代碼第一次我有以下的,例如:外鍵的實體框架 - 週期或多個級聯路徑錯誤
public class Blog
{
public int BlogID { get; set; }
public string Content { get; set; }
public virtual User User { get; set; }
public virtual ICollection<BlogMeta> BlogMeta { get; set; }
}
public class BlogMeta
{
public int BlogMetaID { get; set; }
public string Content { get; set; }
public virtual User User { get; set; }
public virtual Blog Blog { get; set; }
}
這成功地生成表博客和BlogMeta和創建具有的外鍵關係用戶表。閱讀this後,我改變了這一爲以下內容:
public class Blog
{
public int BlogID { get; set; }
public string Content { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
public virtual ICollection<BlogMeta> BlogMeta { get; set; }
}
public class BlogMeta
{
public int BlogMetaID { get; set; }
public string Content { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
public int BlogID { get; set; }
public virtual Blog Blog { get; set; }
}
,現在這是行不通的。它生成的表,然後將引發試圖創建關係時以下錯誤:
上表「BlogMeta」引入外來KEY約束「BlogMeta_User」可能會導致循環或多個級聯路徑。
那麼,介紹public int UserID
的優勢是什麼?爲什麼在這樣做時失敗?
編輯: 好了,我已經遇到this answer其中概述了獨立協會和外鍵關聯......這原來是我在談論的區別。所以這留下了問題,爲什麼在使用外鍵關聯時會拋出上述錯誤?
'Blog'和'BlogMeta'之間的關係是什麼?您看到的錯誤意味着多個級聯路徑存在於BlogMeta實體中,而SQL Server不支持該路徑。 –
我已經更新了這個問題,兩者之間有一對多的關係。謝謝。 –