4

我已经看到了许多关于如何通过部分类将元数据注释添加到通过实体框架生成的类(数据库优先)的解释。

有人能告诉我为什么这些新的显示值没有显示在我的视图中吗?这两个都是与我的实体框架生成的类相同的命名空间的一部分。

[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; }     
    }

视图片段:

<th>
    @Html.DisplayNameFor(model => model.OfCodeID)
</th>
<th>
    @Html.DisplayNameFor(model => model.CodeName)
</th>
<th>
    @Html.DisplayNameFor(model => model.Description)
</th>   
4

3 回答 3

4

这已经解决了!我已经查看了 30 篇或 40 篇关于为什么这个实体框架“数据库优先”部分类不起作用的教程。然后我发现这篇文章给出了以下建议:

对不起,这太晚了,但我自己解决了一个类似的场景。我相信这条线

[元数据类型(typeof(CompanyMD))]

属于由 EF 生成的部分类,即使当您更改模型时它将被删除。因此,您的 EF 生成的文件应如下所示:

要查看帖子的其余部分,请转到此链接... MVC 4 EF5 数据库首先在部分类中设置默认值

于 2013-01-22T07:10:33.623 回答
0

这可能会或可能不会帮助其他人,但在遵循本教程之后(https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/database-first-development/enhancing-data-validation) .

我也有类似的问题,即我的元数据没有反映在我的观点中。对我来说,解决方案是让我的元数据类与我的 .edmx 文件位于相同的命名空间中,这一行是关键“...,并且每个都与自动生成的类的名称和命名空间相匹配。”

于 2017-02-23T19:05:00.280 回答
-1

您还必须如下声明xRef_CodesMetadatapartial

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 模型类以及为数据和模型优先实体添加注释很有用

我希望这对你有帮助。

于 2013-01-19T08:56:41.953 回答