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