在MVC 4中不显示部分实体类的数据注释
本文关键字:实体 数据 注释 显示部 MVC | 更新日期: 2023-09-27 17:54:37
我看过很多关于如何通过部分类向实体框架生成的类添加元数据注释的解释,数据库首先。
谁能告诉我为什么这些新的显示值没有显示在我的视图?这两个都是我的实体框架生成类的同一个命名空间的一部分。
[MetadataType(typeof(xRef_CodesMetadata))]
public partial class xRef_Codes
{
}
public class xRef_CodesMetadata
{
public int CodeID { get; set; }
public int CTB_ID { get; set; }
[Required(ErrorMessage = "Please type a name")]
[Display(Name = "Code Name")]
[Column(TypeName = "Code Name")]
public string CodeName { get; set; }
[Required(ErrorMessage = "Please type a Description")]
[Display(Name = "Description")]
[Column(TypeName = "Description")]
public string Description { get; set; }
}
View片段:
<th>
@Html.DisplayNameFor(model => model.OfCodeID)
</th>
<th>
@Html.DisplayNameFor(model => model.CodeName)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
此问题已解决!我已经看了30到40个关于为什么这个实体框架"数据库优先"部分类不起作用的教程。然后我发现了这个帖子,给出了以下建议:
抱歉这么晚了,但我刚刚解决了一个类似的情况。我相信这句话
[MetadataType (typeof (CompanyMD)))
属于由EF生成的部分类,尽管它将属于当您更改模型时将被擦除。这就是ef生成的文件应该像这样:
要查看文章的其余部分,请访问此链接…MVC 4 EF5数据库首先在部分类中设置默认值
这可能对其他人没有帮助,但在遵循本教程(https://learn.microsoft.com/en-us/aspnet/mvc/overview/getting-started/database-first-development/enhancing-data-validation)之后。
我也有类似的问题,我的元数据没有反映在我的视图。我的解决方案是让我的元数据类与我的。edmx文件在相同的命名空间中,这一行是关键的"…,并且每个匹配的名称和名称空间作为自动生成的类。"
您必须将xRef_CodesMetadata
类声明为partial
,如下所示。
public partial class xRef_CodesMetadata
{
public int CodeID { get; set; }
public int CTB_ID { get; set; }
[Required(ErrorMessage = "Please type a name")]
[Display(Name = "Code Name")]
[Column(TypeName = "Code Name")]
public string CodeName { get; set; }
[Required(ErrorMessage = "Please type a Description")]
[Display(Name = "Description")]
[Column(TypeName = "Description")]
public string Description { get; set; }
}
可能对您有用从现有数据库生成EF代码优先模型类和为数据和模型优先实体添加注释