我有两个实体 - UserObj和Producer。
UserObj存储与用户相关的个人资料数据 Producer是一个userobj可以关联的公司。为了关联这两个,我想创建一个允许我从一个实体访问每个实体的数据的实体。
我正试图将两者联系起来 - 但我不太清楚如何做到这一点,我敢打赌它是小事。感谢您的帮助!
ProducerUser
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; }
}
答案 0 :(得分:1)
要建立多对多关系,请添加ICollection&lt;&gt;关系的两边。在你的情况下:
到类Producer add
public virtual ICollection<UserObj> UserObjs { get; set; }
向UserObj类添加
public virtual ICollection<Producer> Producers { get; set; }
之后,您可以删除ProducerUser类的声明。 EF将为您生成它。
答案 1 :(得分:0)
将以下行添加到UserObj和Producer:
类中public virtual ICollection<ProducerUser> ProducerUsers { get; set; }