0
我已經使用ef-core創建了多對多的關係,它絕對有效,我能夠在數據庫中創建每個項目並創建關係。但是我這樣做的方式有點冗長。 intellisense中的對象似乎也有錯誤的屬性(我會在下面解釋更多)。我想知道是否有不同的方式。實體框架核心創建多對多關係
這裏是我的實體
DisplayItem.cs
public class DisplayItem
{
[Key]
public int ItemId { get; set; }
[Required]
public string Description { get; set; }
[Required]
public string FileType { get; set; }
[Required]
public string FileName { get; set; }
[Required]
public byte[] Item { get; set; }
public ICollection<LookUpGroupItem> LookUpGroupItems { get; set; }
}
DisplayGroup.cs
public class DisplayGroup
{
[Key]
public int GroupId { get; set; }
public string Description { get; set; }
[Required]
public string Name { get; set; }
public ICollection<LookUpGroupItem> LookUpGroupItems { get; set; }
}
關係的實體
個LookUpGroupItem.cs
///naming convention will be each entity in the relationship following LookUp
public class LookUpGroupItem
{
public int ItemId { get; set; }
public DisplayItem DisplayItem { get; set; }
public int GroupId { get; set; }
public DisplayGroup DisplayGroup { get; set; }
}
假設模型構建邏輯是正確的。 這裏是我用來創建每個然後創建查找關係的代碼。
DisplayLookUpInteraction.cs
public void Create(DisplayGroup g, DisplayItem d)
{
using (var transaction = _dataContext.Database.BeginTransaction())
try
{
_dataContext.Add(d);
_dataContext.Add(g);
_dataContext.SaveChanges();
LookUpGroupItem l = new LookUpGroupItem() { GroupId = g.GroupId, ItemId = d.ItemId };
_dataContext.Add(l);
_dataContext.SaveChanges();
transaction.Commit();
}
catch (Exception ex)
{
}
}
這工作得很好,但同樣它似乎有點多。而現在,每當我使用DisplayItem
或DisplayGroup
時,對象內總是有ICollection<LookUpGroupItem>
的屬性。這個是來做什麼的?
我刪除了我的評論,並提出了另一個問題@CodeNotFound –