我在这里遵循了很好的建议(Handling calculated properties with breezejs and web api),以允许Breeze访问我在服务器端的部分类中设置的计算属性:
public partial class EventPerson
{
[NotMapped]
public Decimal TotalAmountPaid
{
get
{
return this.EventPersonPayments.Sum(p => p.AmtPaid);
}
}
}
但是对于我检索到的每个EventPerson,除非我在客户端使用.expand(“ EventPersonPayments”)或在服务器端使用.Include(“ EventPersonPayments”),否则该值显示为0。
我不希望EventPersonPayments中的所有数据都被序列化并发送给客户端;我想要的就是总价值。这可能吗?
编辑:如果我的计算属性是从实体中已经存在的其他属性派生的,则它可以正常工作。例如:
public partial class EventPerson
{
[NotMapped]
public String DisplayName
{
get
{
return this.FirstName + " " + this.LastName;
}
}
}
返回JSON有效负载中的DisplayName。除非我专门加载所有额外信息,否则以前的计算属性类型始终返回0或null。
我曾考虑将它们转换为SQL Server中的用户定义函数,但我不必为了使它按应有的方式扔掉C#代码。
我遵循了很好的建议(使用breezejs和Web api处理计算的属性,以允许Breeze访问我在服务器端的部分类中设置的计算的属性:...