假设我有具有以下属性Employee对象:
string Name { get; }
float Hours { get; }
float Wage { get; }
我想补充一个属性,工资,相当于小时*工资。 在一个普通的业务对象,我会简单的代码了在房地产,但这大概消灭了,如果需要的类进行再生。
有没有办法实现这个没有通过它映射到数据库实体的麻烦去的EF标准的方式?
假设我有具有以下属性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和实体框架类使用partial关键字,允许您分割在多个文件中定义生成,因为设计师知道你将要添加成员未通过不断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]属性的解决方案。 欲了解更多信息请参阅的Code First DataAnnotations