Jas*_*ers 4 c# database lambda
我正在尝试模仿我的ADO.NET DAL方法的LINQ Where扩展方法.
基本上,我的目标是有一个我可以打电话的方法.如:
Product p = Dal.GetProduct(x => x.ProductId == 32);
Product p2 = Dal.GetProduct(x => x.ProductName.Contains("Soap"));
Run Code Online (Sandbox Code Playgroud)
然后,我想剖析那些谓词并将过滤器选项发送到ADO.NET存储过程调用中的参数.
任何评论都非常感谢.
正如@Daniel指出的那样,这远非简单.解决方案大纲是让 GetProduct类型参数Expression<Func<Product, bool>>.然后,您必须遍历此表达式的解析树,为已知函数生成正确的SQL,并决定如何处理未知函数.基本上有两种选择:
这样做会很有趣 - 但是在现实世界中,当已经有linq2sql,linq2entities和linq2NHibernate完成这项任务时,我几乎找不到一种方法可以证明它是正确的.
| 归档时间: |
|
| 查看次数: |
1883 次 |
| 最近记录: |