linq-to-sql – 鉴于LINQ to Entities不支持“自定义方法”,你如
我遇到过这个问题:
Custom Methods & Extension Methods cannot be translated into a store expression 基本上我有一些复杂的LINQ查询,所以想要将它们分解为子查询,这些子查询被实现为返回IQueryables的方法.我希望这些IQueryable可以在LINQ语句中组合在一起(因为我很确定你可以在LINQ to SQL中做到). 问题是如果你试试这个(例如):
对我来说,如果你使用LINQ ORM,那么你需要能够编写LINQ查询.否则,任何常见的查询逻辑都必须是copy&粘贴. 鉴于这种限制,我怎么能用LINQ to Entities保持DRY? 解决方法两种方式:>可以使用返回表达式的方法 对于#1,请考虑: public Expression<Func<Foo,bool>> WhereCreatorIsAdministrator() { return f => f.Creator.UserName.Equals("Administrator",StringComparison.OrdinalIgnoreCase); } public void DoStuff() { var exp = WhereCreatorIsAdministrator(); using (var c = new MyEntities()) { var q = c.Foos.Where(exp); // supported in L2E // do stuff } } 有关数字2的示例,请阅读本文:How to compose L2O and L2E queries.请考虑给出的示例: var partialFilter = from p in ctx.People where p.Address.City == “Sammamish” select p; var possibleBuyers = from p in partiallyFilter.AsEnumerable() where InMarketForAHouse(p); select p; 这可能效率较低,或者可能没问题.这取决于你在做什么.投影通常很好,通常不适合限制. 更新刚从Damien Guard看到an even better explanation of option #1. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQLServer2008:助您轻松编写T-SQL存储过程
- sql-server – 带或不带索引的批量插入
- 解决SQL Server 2008 不能使用 “.” local本地连接数据库问
- sql-server-2008-r2 – Visual Studio 2015 – Sql Server项
- sql – HTML5数据库的状态是什么?
- 使用SQL Server对会计年度进行分组
- 使用SQL Server维护计划实现数据库定时自动备份
- sql-server – 尝试将FoxPro DBF文件导入SQL Server
- SQLSERVER数据库 'XX' 的事务日志已满。若要查明无
- sql – 在同一个表中使用其他值更新一列