当前位置:编程学习 > C#/ASP.NET >>

如何解决代码重用性问题

Linq To Entities。

假设有一个表Person,只有ID一个字段,主键。
然后有另外一个表Money,主键为ID,另外还有2列:
Amount,double型;Owner ,int型,与Person表的主键ID有关系。

然后我要查看某个ID的Person的Money的总数,我可以怎样(假设是这样写):
xxx = db.Person.First(p => p.ID == ???).Money.Sum( m => m.Amount).Value;

然后问题就来了,如果我要查询Money的总数大于1000的Person呢?我就要这样:
yyy = db.Person.Where(p => p.Money.Sum(m => m.Amount).Value > 1000);

于是,下面这段代码就重复了……
.Money.Sum( m => m.Amount).Value
如果我有很多地方 的代码都需要这个Money的总数,那我岂不是要写很多遍?如果将来这个代码需要修改……那工作量就很大啊

有没有办法解决这个问题?我尝试过用:
public partial class Person
{
    public double TotalMoney{get{return 重复的那段代码;}}
}

当我想显示总数时,确实有效……但是不可查询……使用这个属性来查询就会提示:

LINQ to Entities 不支持指定的类型成员“TotalMoney”。只支持初始值设定项、实体成员和实体导航属性。

那么,究竟如何解决这个代码重用性的问题?还是无法解决??
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,