将数据注释添加到由实体框架生成的类

将数据注释添加到由实体框架生成的类

我有实体框架生成的以下类:

public partial class ItemRequest{
    public int RequestId { get; set; }
    //...

我想把它变成一个必填字段

[Required]public int RequestId { get;set; }

但是,因为这是生成的代码,这将被消灭。我无法想象一种创建分部类的方法,因为属性是由生成的分部类定义的。如何以安全的方式定义约束?


LEATH
浏览 378回答 3
3回答

慕田峪9158850

生成的类ItemRequest将始终是一个partial类。这允许您编写第二个部分类,该部分类标有必要的数据注释。在您的情况下,部分类ItemRequest看起来像这样:using System.ComponentModel;using System.ComponentModel.DataAnnotations;//make sure the namespace is equal to the other partial class ItemRequestnamespace MvcApplication1.Models {     [MetadataType(typeof(ItemRequestMetaData))]     public partial class ItemRequest     {     }     public class ItemRequestMetaData     {         [Required]         public int RequestId {get;set;}         //...     }}

青春有我

我找到了像MUG4N的答案之MetaData类的解决方案,而是将类嵌套在实体类中,从而减少了公共命名空间列表中的类数,并且无需为每个元数据类创建唯一的名称。using System.ComponentModel.DataAnnotations;namespace MvcApplication1.Models {     [MetadataType(typeof(MetaData))]     public partial class ItemRequest     {         public class MetaData         {             [Required]             public int RequestId;             //...         }     }}
打开App,查看更多内容
随时随地看视频慕课网APP