我在这里尝试做的是编写一个函数,它将从某个具有特定条件的表中返回一个对象
所以我可以说我可以写
function GetRecord(TableName as string,Criteria as string) as object
'do the linq-stuff
end function
现在我不在乎,如果参数是字符串或lambdas或其他什么,但最终结果必须是在运行时我不知道将使用哪个表和哪个标准
有时候我需要通过电子邮件获取客户记录,有时候还需要通过id等产品。
如果可能的话我宁愿返回匹配对象的列表然后我会在我想要1时使用.firstordefault(例如通过id ...)
一如既往地感谢您花时间阅读并回答!
一切顺利
答案 0 :(得分:2)
答案 1 :(得分:1)
解析表达式树可能是解决此问题的一种具有挑战性但有益的方法。我认为这太过分了,我会选择动态Linq作为decyclone提到的。
解析表达式树的一个好处是,您可以对提交的条件进行编译时检查。
以下是一些帮助我的文章。
如何:实现表达式树访问者:http://msdn.microsoft.com/en-us/library/bb882521(VS.90).aspx
构建自定义IQueryable提供程序:http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx
演练:创建IQueryable LINQ提供程序:http://msdn.microsoft.com/en-us/library/bb546158(v=VS.90).aspx
表达式树基础知识: http://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx