0

我有两个实体 - UserObj 和 Producer。

UserObj 存储与用户相关的配置文件数据 Producer 是与 userobj 可以关联的公司。为了将这两者关联起来,我想创建一个实体,让我可以从一个实体访问每个实体的数据。

我正在尝试将两者联系起来——但我不太确定该怎么做,而且我敢打赌这是一件小事。感谢您的任何帮助!

生产者用户

    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; }

}

用户对象

    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 回答