代码之家  ›  专栏  ›  技术社区  ›  YodasMyDad

是否向实体框架添加自定义属性?

  •  20
  • YodasMyDad  · 技术社区  · 14 年前

    我第一次使用实体框架,想知道下面是否可行——我已经从数据库生成了我的类,并有一个名为category的类。

    显然,它在表中有我的所有字段(ID、CategoryName、SortOrder等),但我想知道是否可以添加一个不在表中但实际上是自定义方法的结果的自定义属性。

    我想添加一个名为“CategoryURL”的新属性,它基本上是通过自定义方法运行的“CategoryName”属性,并返回一个连字符字符串。

    我最初的想法是从生成的类别类继承并在内部创建类似的内容?

    public string CategoryURL 
    {
        get{ return MyCustomMethod(this.CategoryName) }
    }
    

    这是正确的方法吗?“this.CategoryName”会像我认为的那样工作吗?基本上,最终的结果是当我返回一个“类别”列表时,我希望它是类的一部分,这样我就可以在foreach循环中使用它。

    希望这有意义?

    2 回复  |  直到 9 年前
        1
  •  20
  •   Klaus Byskov Pedersen    11 年前

    你应该使用 partial 班级:

    public partial class Category
    {
        public string CategoryURL  
        { 
            get{ return MyCustomMethod(this.CategoryName); } 
        } 
    }
    

    这种方式 this.CategoryName 将按预期工作。

    这是因为由实体框架代码生成器生成的类也会生成 部分的 类。它还意味着您可以从数据库安全地重新生成类,而不会影响您自己定义的部分类。

        2
  •  9
  •   Jared Beach    9 年前

    你应该加上 [NotMapped] 属性