0
使用實體框架我試圖在簡單的博客asp.net mvc 4應用程序中建立多對多的關係。我的型號如下:多對多插入邏輯
public class BlogPost
{
[Key]
public string Id { get; set; }
public DateTime DateCreated { get; set; }
[Required]
public string Title { get; set; }
public string Image { get; set; }
public string ThumbImage { get; set; }
public ICollection<BlogCategory> Categories { get; set; }
[AllowHtml]
public string Content { get; set; }
}
public class BlogCategory
{
[Key]
public string Name { get; set; }
public virtual ICollection<BlogPost> Posts { get; set; }
}
該博客類別不能作爲新的可能需要添加一個枚舉,所以需要一個集合。該類別很簡單,只是名稱,以及導航到具有給定類別的所有帖子的方式。問題是創建一個新的BlogPost。在理想的世界中,會發生以下事情。
private BlogPost post = new BlogPost
{
Title = "Blog Entry One",
Categories = new List<BlogCategory>()
{
new BlogCategory {Name = "Web"},
new BlogCategory() {Name = "C#"}
},
Content =
"Aliquam sem quam, posuere eget tellus in, porta semper dolor. Morbi aliquam placerat urna ut."
};
當名字由「網頁」一BlogCategory已經在數據庫中,然後引用它的上下文被保存。如果不創建新條目。
此刻EF會拋出一個錯誤,表明該密鑰已被使用。希望有人能幫助!
是否可以在我的問題中允許創建新類別的功能,但保存時會檢查鍵是否爲新並插入。如果鍵存在引用數據庫中的當前一個? –