
[英]Where to add Annotations in ASP.Net MVC 4 Application with POCO objects
[英]Add annotations in extension class for ASP.NET MVC and EF
我在数据库设计中犯了一个DivID
错误:我有一个表( Divisions
),其PK的DivID
为DivID
(而不是ID
)。 我正在使用Entity Framework v6.0创建ASP.NET MVC应用程序,但收到一个错误消息,我的实体类型Division
没有定义键。
在EMDX设计器中,当我查看这些字段属性时,它确实表明Key
为true,但是生成的实际Division
类不包含[Key]
属性。
我可以添加它,以及using System.ComponentModel.Annotations;
但是当我重新生成模型时,我必须进入并再次添加这些行。 我正在尝试通过使用扩展类来解决问题:
[MetadataType(typeof(Division_Validation))]
public partial class Divison
{
}
[Bind(Include="DivID")]
public partial class Division_Validation
{
[Key]
public int DivID { get; set; }
}
如在这里找到。 但这是行不通的。 我猜测[Key]
由于某种原因无法以这种方式定义。
除了重命名数据库中的字段之外,还有什么方法可以解决我的问题?
我尝试自定义映射,以使Entity对象具有ID
而不是DivID
,但是引发了一个错误,指示该模型与数据库已过期,并且需要先通过代码迁移来更新数据库。 。 。 听起来好像它实际上将要更新我不想要的数据库,因为现有的桌面应用程序正在使用它,并且要求它不要这样更新。
更新
我完全删除了模型,包括web.config连接字符串设置,然后重新添加了模型。这一次,我在添加模型后直接设置了自定义映射(将DivID
从数据库侧映射为实体侧的ID
)而且效果很好。 我假设这是预期的工作流程,但是如果有一种方法可以使MetadataType
用于[Key]
批注,那么它似乎是首选方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.