我是流畅的API的新手。我有一个遗留数据库,目前我无法改变。简而言之,这就是我需要实现的目标:
public class ItemCategory
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public class Item
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<ItemCategory> ItemCategories { get; set; }
public virtual ICollection<Item> RelatedItems { get; set; }
}
项目可以是多个类别,RelatedItems可以与当前项目(可能没有任何相关项目)在不同的类别中,现有的连接表格如下所示:
ItemCategoriesItems (ID,ItemCategoryID,ItemID)
RelatedItemCategoriesItems (ID,ItemCategoriesItemsID,RelatedItemCategoriesItemsID)
希望很明显,上面的相关项连接表包含项目类别连接表的2个外键 - 一个指向当前项,另一个指向相关项。目前我的onModelCreating代码有:
modelBuilder.Entity<ItemCategory>()
.HasMany(c => c.Items)
.WithMany(set => set.ItemCategories)
.Map(mc =>
{
mc.ToTable("ItemCategoriesItems","testdb");
mc.MapLeftKey("ItemCategoryID");
mc.MapRightKey("ItemID");
});
...它使类别/项目有效但我仍然坚持如何获取RelatedItems。
任何帮助都非常感谢!