我在Linq-to-SQL类上创建了一些额外的功能,以便在开发我的应用程序时使事情变得更加简单。例如,我定义了一个从合同列表中检索活动合同的属性。但是,如果我试图在lambda表达式中使用此属性,或者通常在查询中使用此属性,它将引发一个异常,即没有与该属性匹配的SQL语句,或者它会为每个项目生成一个查询(=大量往返于服务器)。在Linq-to-SQL中映射计算的属性以执行SQL语句
查询本身并不复杂f.ex:
var activeContracts = customer.Contracts.Where(w => w.ContractEndDate == null);
而我想它是阅读:
var activeContracts = customer.ActiveContracts;
我这样做的主要原因是因为它会降低在我的部分是逻辑错误,如果我将来想改变定义活动合同的内容,我不必重做很多代码。
有没有一种方法来指定属性应该生成的SQL。或者有没有办法确保它可以在下面的查询中使用?
var singleContractCustomers = db.Customers.Where(w => w.ActiveContracts.Count() == 1);
什么是你的财产类型? – 2008-10-10 08:39:54