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 に答える