我第一次使用 Entity Framework ,想知道是否可以进行以下操作-我已经从数据库生成了我的类,并且有一个名为Category的类。

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

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

我最初的想法是从生成的Category类继承并在内部创建类似这样的东西?

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

这是正确的方法吗?我认为'this.CategoryName'是否可以正常工作?基本上,最终结果是当我返回“类别”列表时,我希望它成为该类的一部分,因此可以在foreach循环中使用它。

希望这有意义吗?

最佳答案

您应该使用 partial 类:

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

这样this.CategoryName将按预期工作。

之所以可行,是因为 Entity Framework 代码生成器生成的类也生成partial类。这也意味着您可以安全地从数据库中重新生成类,而不会影响您自己定义的部分类。

10-06 08:12