(代码优先)使用非标准命名约定的实体框架外键

时间:2013-09-19 15:47:50

标签: asp.net-mvc entity-framework ef-code-first entity-framework-5

我首先在我的模型中使用代码并尝试将2个属性添加到评估类中,该评估类将是返回到我的Provider类的外键。

... In Assessment Class ...
public class Assessment
{
    public int AssessmentID { get; set; }
    public int createdByProviderID { get; set; } // this will container a providerID
    public int closedByProviderID { get; set; } // this will container a providerID
}
...

... Provider ...
public class Provider
{
    public int ProviderID { get; set; }
}
...

我无法弄清楚如何执行此操作,因为它们不符合EF所寻求的标准命名约定。

1 个答案:

答案 0 :(得分:3)

你可以通过几种方式做到这一点;我个人使用映射类来保存我的模型中特定于数据库的详细信息,但是如果您使用的是这种方法,我无法从您的问题中得知。假设您只有模型类,您可以执行以下操作:

1 - 添加指向每个外键的Provider模型的虚拟属性(允许延迟加载)。

2 - 使用ForeignKey属性装饰这些新虚拟属性,指向作为实际外键的属性。

public int createdByProviderID { get; set; } // this will container a providerID

[ForeignKey("createdByProviderID")]
public virtual Provider createdByProvider{get; set;}

public int closedByProviderID { get; set; } // this will container a providerID

[ForeignKey("closedByProviderID")]
public virtual Provider closedByProvider{get; set;}

祝你好运。