最近想写一个自己使用的简单OMR类库..也通过这个来对C#3.0(linq,Lambda,Expression Tree)有一个更深入的了解..
问题就是如何解析 Lambda 表达式成 SQL 语句,呃 或者是"有没有更简便的方式来做这个工作??"
希望各位前辈,各位有经验的园友一起来讨论这个问题呵呵..
比如:
DbSession.From<User>().Where( u=>u.Sex=="男" && u.City.Contains("Beijing")).ToList();
要的解析结果是: SELECT * FROM [User] where [User].Sex='男' and [User].[City] like '%Beijing%' ;
呼呼~~~ 感觉很好玩. . .哈哈
现在的童鞋有了ORM,连基本的sql都不会了。
我还停留在ADO.NET。
Lambda 表达式,即一棵表达式树(expression)
表达式树转成sql字符串算法还是很复杂的,有兴趣可以反编译看看
自己写,如果一个人的话,那真是够呛