0

我有:

用户:-ID -名称

项目 -ID -标题

所以我的配置很糟糕,Stackover flow 的好人指出我是对的。极好的!问题是,我现在意识到我有一个改变事情的额外要求。

在用户(类)中,我有: public virtual ICollection Items { get; 放; }

这会使用 UserID 和 ItemID 自动创建一个表(用于查找)。

问题是,我想将某些项目标记为收藏项(如果使用收藏夹,则为 IE),现在因为表是自动创建的并且没有类,我无法在此类/表上添加属性“IsFavourite”。那么我该怎么做呢?

4

1 回答 1

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; }
}
于 2012-08-14T10:08:21.423 回答