将Linq表达式转换为sql statament.C#

Ale*_*era 0 sql linq linq-to-sql

我有一个函数,它采用我想转换sql的lambda表达式.

<T> List Search <T> (Expression <Func <T, bool>> criteria) {

  / / The idea is to create a SQL statement, based on criteria

}
Run Code Online (Sandbox Code Playgroud)

我没有使用DataContext.请不要给出答案:

list.Where return (criteria.Compile ()). ToList <TClass> ();
Run Code Online (Sandbox Code Playgroud)

例:

<Contact> List Search <Contact> (c => c.id == 1 && new == c.birthday DateTime (2000,1,1))
Run Code Online (Sandbox Code Playgroud)

表达树是无用的,我试过,我发现它是不可能的.

如果你不能回应,请.我更喜欢对愚蠢的答案零回应甚至没有更接近解决方案.

对不起英语,我正在学习:)

谢谢和最好的问候.

jas*_*son 6

表达树没用,

不,他们不是.如果您想在不使用现有代码的情况下自行解决此问题,则需要拆分表达式树以将其转换为SQL(想想表达式树访问者).表达式树是代码中的lambda表达式在运行时将作为数据呈现给您的方式.

我试过,我觉得这是不可能的.

这不是不可能,但也不容易.只需看看NHibernate实现.你会发现它是可能的.你会发现这是很多工作.

你为什么重新发明轮子?

  • @Alejandro Mosquera:什么? (3认同)