作者:jinnee5921_866 | 来源:互联网 | 2023-01-29 18:27
数据注释未显示MVC4中的部分实体类我已经看到了几十个关于如何通过部分类将元数据注释添加到通过entityframework生成的类的解释,数据库优先。有人能告诉我为什么这些新的显
数据注释未显示MVC 4中的部分实体类
我已经看到了几十个关于如何通过部分类将元数据注释添加到通过entity framework生成的类的解释, 数据库优先 。
有人能告诉我为什么这些新的显示值没有显示在我的视图中吗? 这两个都是与我的entity framework生成的类相同的命名空间的一部分。
[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; } }
片段视图:
@Html.DisplayNameFor(model => model.OfCodeID) | @Html.DisplayNameFor(model => model.CodeName) | @Html.DisplayNameFor(model => model.Description) |
这已经解决了! 我已经看了30个关于为什么这个entity framework“数据库优先”部分类无效的教程。 然后我发现这篇文章给出了以下建议:
对不起,这太晚了,但我自己也解决了类似的问题。 我相信这一行
[MetadataType(typeof运算(CompanyMD))]
属于EF生成的分部类,即使在更改模型时它也会被删除。 因此,您生成的EF文件应如下所示:
要查看post的其余部分,请转到此链接… MVC 4 EF5数据库首先在部分类中设置默认值
这可能会或可能不会帮助其他人,但是在遵循本教程之后( https://docs.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 Code First模型类并为数据和模型优先实体添加注释
我希望这会对你有所帮助。
上述就是C#学习教程:数据注释未显示MVC 4中的部分实体类分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记