实体框架代码优先 - 冗余ID

时间:2014-05-11 17:28:07

标签: entity-framework ef-code-first foreign-keys

如何摆脱冗余ID?

我有一个userprofile模型 - userprofile有一个连接模型列表。连接模型具有userprofile(拥有连接的userprofile)和userprofile2(userprofile连接到的另一个userprofile)。 在db中的Connections表中,我得到以下列:

| ID |确认| ConnectionType | UserProfile_UserId | UserProfile2_UserId | UserProfile_UserId1 |

此处UserProfile_UserId将始终与UserProfile_UserId1相同。我真的想摆脱额外的ID列。

public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public virtual ICollection<Connection> Connections { get; set; }
}

public class Connection
{
    [Key]
    public int Id { get; set; }
    public bool Confirmed { get; set; }
    public byte ConnectionType { get; set; }
    public virtual UserProfile UserProfile { get; set; }
    public virtual UserProfile UserProfile2 { get; set; }

}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您是否尝试过将自己的属性添加到类中:

public class Connection
{
[Key]
public int Id { get; set; }
public bool Confirmed { get; set; }
public byte ConnectionType { get; set; }
public int UserId {get; set;}
public virtual UserProfile UserProfile { get; set; }
public int UserId2 {get; set;}
public virtual UserProfile UserProfile2 { get; set; }

}

答案 1 :(得分:0)

使用InverseProperty注释解决了这个问题: [InverseProperty(&#34;连接&#34)] public virtual UserProfile UserProfile {get;组; }

这在InverseProperty中描述: http://msdn.microsoft.com/da-dk/data/jj591583.aspx#Relationships