在metaDataClass中为EF数据库首先生成的实体添加注释[key]

时间:2016-08-03 12:58:03

标签: c# asp.net entity-framework annotations odata

在我的Odata web api中,我首先使用Entity Framework Database生成了我的实体,然后我想将注释[key]添加到一个字段中,所以我按照这个指示:https://stackoverflow.com/a/16737247/6444829创建一个元数据类然后部分类,然后在元数据类中添加注释。

当我这样做时,它不考虑注释,我得到一个错误“实体'XXXX'没有定义一个键”。

什么是错误的,注释[Key]与其他注释不同?

 public partial class personalInfo
{

    public int personId { get; set; }
    public int primaryPosition_id { get; set; }
    ...
}


[MetadataType(typeof(personalInfoMetaData))]
public partial class personalInfo
{

}


public class personalInfoMetaData
{
    [Key]
    public int personId { get; set; }

    [ForeignKey("positionInfo")]
    public int primaryPosition_id { get; set; }
}

ps:从数据库中检索并在实体中转换的视图。

1 个答案:

答案 0 :(得分:1)

您能否确保您的部分类定义在同一名称空间中? 要将多个partial定义合并为一个类,所有这些定义必须共享相同的名称空间。

这些也应该在同一个项目中。当您在突出显示班级名称时按F12(或选择转到定义)时,它应该询问您要转到哪个partial定义。这样,您可以验证这两个是否已链接。

否则,请尝试在空的分部类中声明public int personId { get; set; },看看是否会引发错误。