0

UserObj と Producer という 2 つのエンティティがあります。

UserObj は、ユーザー関連のプロファイル データを格納します。 Producer は、userobj を関連付けることができる会社です。これら 2 つを関連付けるために、1 つのエンティティからそれぞれのデータにアクセスできるエンティティを作成したいと考えました。

私は2つをリンクしようとしていますが、どうすればいいのかよくわかりません。おそらく小さなものです。助けてくれてありがとう!

プロデューサーユーザー

    public class ProducerUser
{
    [ForeignKey("UserObj")]
    public Guid UserObjID { get; set; }
    [ForeignKey("Producer")]
    public int ProducerID { get; set; }

    public virtual UserObj UserObj { get; set; }
    public virtual Producer Producer { get; set; }

}

UserObj

    public class UserObj : Contact
{

    [Key]
    //public override string Email { get; set; }
    public Guid UserObjID { get; set; }
    [Display(Name = "First Name")]
   // [Required]
    public string FirstName { get; set; }
  //  [Required]
    [Display(Name = "Last Name")]
    public string LastName { get; set; }
    public int UserTypeID { get; set; }

    public virtual UserType UserType { get; set; }

    public static UserObj GetUserObj(string GUID, vfContext db)
    {
        Guid guidUser = new Guid(GUID);
        return db.UserObjs.Find(guidUser);
    }

    public string GetFullName()
    {
        return this.FirstName + " " + this.LastName;
    }

}

プロデューサー

    public class Producer : Contact
{
    [Key]
    public int ProducerID { get; set; }
    public string Name { get; set; }
    public string Twitter { get; set; }


    public virtual ICollection<Wine> Wines { get; set; }

}
4

2 に答える 2

1

多対多の関係を確立するには、関係の両側に ICollection<> を追加します。あなたの場合:

クラス Producer に追加

public virtual ICollection<UserObj> UserObjs { get; set; } 

クラス UserObj に追加

public virtual ICollection<Producer> Producers { get; set; }

その後、クラス ProducerUser の宣言を削除できます。EF によって生成されます。

于 2012-05-16T23:31:05.390 に答える
0

クラス UserObj および Producer に次の行を追加します。

public virtual ICollection<ProducerUser> ProducerUsers { get; set; } 
于 2012-05-16T21:46:46.597 に答える