我有:
用户: -ID -name
物品 -ID -Title
所以我的配置很糟糕,Stackover流程中的优秀人员指出我是正确的。太棒了!问题是,我现在意识到我有一个额外的要求会改变一些事情。
在用户(班级)中,我有: public virtual ICollection Items {get;组; }
这会使用UserID和ItemID自动创建一个表(用于查找)。
问题是,我想标记一些项目有收藏夹(I.E如果使用收藏夹它),现在因为该表格是自动创建的&没有类,我不能在这个类/表上添加属性“IsFavourite”。那么我该如何做得很好呢?
答案 0 :(得分:0)
EF多对多关系不允许额外的属性,因此最简单的方法可能是为您的链接表创建一个显式的实体对象,您可以根据需要进行修改。
public class User
{
[Key]
public int ID { get; set; }
public virtual ICollection<UserItem> UserItems { get; set; }
}
public class Item
{
[Key]
public int ID { get; set; }
public virtual ICollection<UserItem> UserItems { get; set; }
}
public class UserItem
{
[Key]
public int UserID { get; set; }
[Key]
public int ItemID { get; set; }
[ForeignKey("UserID")]
public virtual User User { get; set; }
[ForeignKey("ItemID")]
public virtual Item Item { get; set; }
public bool IsFavourite { get; set; }
}