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 –