在ORM中将Lambda表达式转换为SQL?

| 如何编写将LINQ转换为SQL的ORM? 我已经制作了一个现有的ORM,但是我想使用LINQ进行改进,例如,我可以说:
MyORMObject.GetAll(o => o.firstName == \"peter\");
在我脑海中的想法是,系统将随后将其转换为查询。我想最难的部分是阅读解析为LINQ部分的内容。 我该怎么做呢?换句话说,我将如何(通过反射或其他方式)读取正在使用的
FirstName
属性及其所需的匹配项“ Peter”?     
已邀请:
您将需要实现一个IQueryable LINQ提供程序。顺便说一下,您将不会使用反射,而会使用表达式树。     
如果您的方法是
IEnumerable<T> GetAll<T>(Expression<Func<T,bool>>)
,则lambda表达式将被编译为带有ѭ3with子表达式的表达式树,该子表达式又具有包含
FirstName
属性的
MemberExpression
和包含字符串的
ConstantExpression
。     

要回复问题请先登录注册