在我的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:从数据库中检索并在实体中转换的视图。
答案 0 :(得分:1)
您能否确保您的部分类定义在同一名称空间中?
要将多个partial
定义合并为一个类,所有这些定义必须共享相同的名称空间。
这些也应该在同一个项目中。当您在突出显示班级名称时按F12
(或选择转到定义)时,它应该询问您要转到哪个partial
定义。这样,您可以验证这两个是否已链接。
否则,请尝试在空的分部类中声明public int personId { get; set; }
,看看是否会引发错误。