假设我有具有以下属性Employee对象:

string Name { get; }
float Hours { get; }
float Wage { get; }

我要添加属性,工资,相当于小时*工资。在一个普通的业务对象,我会简单的代码了在房地产,但这大概消灭了,如果需要的类进行再生。

有没有办法实现这个无需通过映射它的麻烦去一个数据库实体EF标准的方式?

有帮助吗?

解决方案

事实上。创建一个单独的文件,例如, EmployeeExtension.cs

在本文件中,将以下代码:

public partial class Employee
{
    public decimal Salary
    {
        get { return Hours * Wage; }
    }
}

LINQ to SQL和实体框架类使用的部分的关键字,让您分割在多个文件中定义生成,因为设计师知道你将要成员添加到AREN类“T通过不断autogenerating基源文件覆盖。

其他提示

如果记错由EF创建的类是局部的。所以你可能添加包含另一局部类另一个文件(相同的命名空间,当然同样类名),其比实现属性

public single Salary
{
   get
   {
       return this.Hours * this.Wage;
   }
}

应该做的伎俩(如果这些单打是不是空的,你得注意!)

我是不是能够得到“阿尔戈的回答开始工作。之后,我身边一个小游戏注意到,如果我装修的财产(如WCF),它下面的属性,所有工作得很好。

[global::System.Runtime.Serialization.DataMemberAttribute()]

按照“的Argo的指令创建一个单独的文件,(例如EmployeeExtension.cs)。如所描述的本应被标记的部分。

在本文件中,将以下代码:

public partial class Employee 
{
   [global::System.Runtime.Serialization.DataMemberAttribute()]       
   public decimal Salary     
   { 
      get { return Hours*Wage; } 
   } 
}  

希望这有助于...。

您可以实现在实体类的属性。实体框架将产生局部类允许你添加成员类。像这样一类添加到您的代码:

public partial class Employee {
  public Single Salary {
    get { return Hours*Wage; }
  }
}

这是不工作为我与实体框架5.我的解决方案是简单地使用[NotMapped]属性。有关详细信息请参阅代码优先DataAnnotations

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top