[英]ASP.NET MVC3 EF Code First - Many-to-many relationships
我試圖在我的MVC項目中首先使用EF代碼創建多對多關系。 我有一個方案,其中我的服務可以具有許多類別,其中可能包含許多子類別。 這一點似乎工作正常。
每個服務,類別和子類別也可以具有與其關聯的許多HelpDeskMember。 這是我在創建關聯時遇到的麻煩。 對於下面的類,我期望EF創建Service_HelpDeskMembers,Category_HelpDeskMembers和Subcategory_HelpDeskMembers表。 請有人能指導我正確的方向嗎?
PS在導航屬性中,由於我使用AJAX和JSON在Service / Category / Subcategory之間創建級聯的下拉列表,並且使用“ virtual”,因此未得到虛擬引用,因此出現循環引用錯誤。
這是我的課。
public class Service
{
[Key]
public int ServiceID { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
public HelpDeskMember CreatedBy { get; set; }
public DateTime? DeletedDate { get; set; }
public HelpDeskMember DeletedBy { get; set; }
public ICollection<Category> Categories { get; set; }
public ICollection<HelpDeskMember> LinesOfSupport { get; set; }
}
public class Category
{
[Key]
public int CategoryID { get; set; }
[ForeignKey("Service")]
public int ServiceID { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
public HelpDeskMember CreatedBy { get; set; }
public DateTime? DeletedDate { get; set; }
public HelpDeskMember DeletedBy { get; set; }
public Service Service { get; set; }
public ICollection<Subcategory> Subcategories { get; set; }
public ICollection<HelpDeskMember> LinesOfSupport { get; set; }
}
public class Subcategory
{
[Key]
public int SubcategoryID { get; set; }
[ForeignKey("Category")]
public int CategoryID { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
public HelpDeskMember CreatedBy { get; set; }
public DateTime? DeletedDate { get; set; }
public HelpDeskMember DeletedBy { get; set; }
public Category Category { get; set; }
public ICollection<HelpDeskMember> LinesOfSupport { get; set; }
}
public class HelpDeskMember
{
public int HelpDeskMemberID { get; set; }
public string Name { get; set; }
public bool Admin { get; set; }
public bool Available { get; set; }
public DateTime? CreatedDate { get; set; }
public DateTime? LastLogin { get; set; }
public DateTime? DeletedDate { get; set; }
public DateTime? DeletedBy { get; set; }
public ICollection<Service> Services { get; set; }
public ICollection<Category> Categories { get; set; }
public ICollection<Subcategory> Subcategories { get; set; }
}
提前致謝。
這里的技巧是使用模型構建器創建多對多鏈接,然后它將按您期望的那樣在數據庫中起作用(帶有鏈接表)
看看這篇文章,了解有關如何進行多對多http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-的詳細信息使用代碼映射first.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.