向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]属性添加到属性中