【发布时间】:2012-10-11 19:31:09
【问题描述】:
我正在开发一个用于从数据库中添加、编辑和删除对象的小助手,add 方法现在正在工作,并且给定一个类型为 t 的对象,它会检查属性、值并生成一个 SQL 查询将数据插入表中(假设表名是对象的类型,但也可以手动设置)
我现在要做的是一个方法
public bool Update<T>(T obj, Func<T, bool> predicate)
所以给定一个 T obj 和一个 lambda 函数 predicate,如果 predicate 是
(o => o.Id = 1)
我要生成
WHERE Id = 1
我看到了一些类似的问题,我认为expression trees 可能是一个很好的起点,但我所看到的只是如何手动创建表达式,而不是如何从委托创建表达式。
有没有办法从委托中生成该 SQL?
编辑:我终于可以做我想做的事了,我发了一篇关于 here 的小帖子。
【问题讨论】:
-
@SLaks:那里没有发生太多事情......
-
看起来您正在创建自己的 ORM。现有的都不适合你吗?
-
我只是添加实用程序插入更新和删除功能,我正在使用 Acess 数据库。
标签: c# linq expression-trees