2012-05-16 41 views
0

我有两个实体 - UserObj和Producer。链接两个实体的表

UserObj存储与用户相关的配置文件数据 生产者是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; } 

} 

回答

1

要建立多对多关系,请在关系的两侧添加ICollection <>。你的情况:

到类生产者增加

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

到类UserObj添加

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

那之后,你可以删除类ProducerUser的声明。 EF将为您生成它。

+0

谢谢!这工作! – user576838

0

以下行添加到类UserObj和监制:

public virtual ICollection<ProducerUser> ProducerUsers { get; set; }