如何将同一类的两个不同属性添加到一个POCO类?

时间:2012-10-27 22:37:11

标签: c# entity-framework-4.1 poco

我有一个对两个类(User)有两个引用的类:

public class Xpto {
    public string Username { get; set; }
    public virtual User User { get; set; }
    public string Username2 { get; set; }
    public virtual User User2 { get; set; }
}

事情是EF只创建对第一个键(用户名)的引用。这样用户和用户2将用户名作为键,而不是我想要的......

我发现这就是答案:

nHibernate, mapping two properties to the same class

但我不知道如何将其应用到我的场景中。

感谢。

编辑:伙计们,没关系......我想我应该看得更远一点。 答案在这里: How do I create a POCO object that has 2 references to another class

标准为<property_name><key_name> 所以正确的方法是 UserUsername User2Username

感谢。

1 个答案:

答案 0 :(得分:1)

考虑使用ForeignKeyAttribute,然后您可以为关键属性选择您喜欢的名称。

public class Xpto {

    [ForeignKey("User")]
    public string Username { get; set; }

    public virtual User User { get; set; }

    [ForeignKey("User2")]
    public string Username2 { get; set; }

    public virtual User User2 { get; set; }
}