none
Can a property define in two partial classes RRS feed

  • 问题

  • i'm working with mvc and entity framework ,and i have a question now;

    ef auto-generated entity for me,such as 

    public partial class User
    {
            public int Id { get; set; }
    
            public string Username { get; set; }
    
            public string Password { get; set; }
    }

    for validations usage,i want to add some attritube to them,so i want to add a partial class like this:

    public partial class User
    {
            [Required]
            [Display(Name = "Your Name")]
            public string Username { get; set; }
    
            [Required]
            [Display(Name = "Your Password")]
            public string Password { get; set; }
    }

    then i can got a class i needed,but not change the auto-generated class so i can re-generated classes from ef .

    anyway to do like this?

    2015年9月15日 9:51

答案

全部回复

  • 你好,

    你用的是database first,Model first 还是code first? 看上去像是database first,这种情况下应该是不需要自己去修改系统生成的代码的。如果你需要验证方面的内容,就需要自己去定义方法了。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年9月16日 8:32
    版主
  • 额。。。我还以为这里提问都是外国人呢,写了半天。。。

    是这样的,假如EF自动生成的实体有一个UserName属性,我想对它进行验证必填,只需要给它加上一个[Required]标志再引用验证js就行。但是我不想在EF自动生成的文件里加,因为一旦我从数据库更新模型,我手动更改的就没有了,一个个改回去麻烦不说,还容易遗漏。

    所以我希望能使用分部类,一部分由EF生成,没有任何Attribute,我自己加的一部分,有属性和Attribute,(如果可以)这样,两个分部类合成一个有Attribute属性的实体,就是我所需要的结果:EF可以随时重新生成实体,我也可以随时修改我自己的分部类,这样互不影响。

    但是,C#是不允许这么做的,大家有没有什么办法?

    2015年9月16日 9:23
  • 你好,

    EF提供了定制T4模板的功能,我们可以定制EF code generation生成出来的代码,我想这应该符合你的要求。

    https://msdn.microsoft.com/zh-cn/data/jj613116 很抱歉,这个文档没有中文版的。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年9月21日 7:58
    版主