向entity framework添加自定义属性?
我是第一次使用entity framework,并想知道以下是否可行 – 我已经从DB生成了我的类,并且有一个名为Category的类。
显然它在表中有我的所有字段(ID,CategoryName,SortOrder等..)但我想知道我是否可以添加一个不在表中的自定义属性,但实际上是自定义方法的结果。
我想添加一个名为’CategoryURL’的新属性,它基本上是通过自定义方法运行的’CategoryName’属性,并返回一个带连字符的字符串。
我最初的想法是从生成的Category类inheritance并在里面创建这样的东西?
public string CategoryURL { get{ return MyCustomMethod(this.CategoryName) } }
这是正确的方法吗? ‘this.CategoryName’会像我认为的那样工作吗? 基本上最终的结果是当我返回一个’Category’列表时,我希望它成为类的一部分,所以我可以在foreach循环中使用它。
希望这有道理吗?
你应该使用partial
类:
public partial class Category { public string CategoryURL { get{ return MyCustomMethod(this.CategoryName); } } }
这样this.CategoryName
将按预期工作。
这是有效的,因为entity framework代码生成器生成的类也生成了partial
类。 这也意味着您可以安全地从数据库重新生成类,而不会影响您自己定义的部分类。
您应该将[NotMapped]
属性添加到属性中