将 linq to object 查询转换为 sql 查询(无 linq to sql 代码或数据上下文)

发布于 2024-11-26 04:07:00 字数 376 浏览 1 评论 0原文

我如何将 linq 转换为对象查询或任何其他 Func 委托转换为字符串(例如 sql 语句

var cat_list = new List<Cat> { ... };

var myquery = cat_list.Where(x => x.Age > 2 && x.Name.Contains("Kitty"));

现在 myquery 是 IEnumerable。我怎样才能将其转换为类似这样的东西

"Age > @p1 AND Name LIKE @p2"

我怎样才能实现这一点?

How can i convert linq to object query or any other Func delegate to string like sql statements

for example

var cat_list = new List<Cat> { ... };

var myquery = cat_list.Where(x => x.Age > 2 && x.Name.Contains("Kitty"));

Now myquery is IEnumerable<Cat>. how can i convert this to simply something like this

"Age > @p1 AND Name LIKE @p2"

how can i achieve this ??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

無心 2024-12-03 04:07:00

做这样的事情并不简单。查看系列文章 构建 IQueryable提供商,作者:Matt Warren。他使用的所有代码也可以作为库提供。这应该可以帮助您入门。

Doing something like that is not simple. Have a look at the series of articles Building an IQueryable provider by Matt Warren. All the code he uses is available as a library too. That should help you get started.

十年不长 2024-12-03 04:07:00

您可以编写一个表达式树解析器并生成 sql。您的描述包含错误 - myquery 不是 IQueryable,它是 IEnumerable。正如您正确标记的那样,这是 linq-to-objects,而不是 linq-to-sql。构建查询的调用中没有任何信息。

You could write an expression tree parser and generate the sql. Your description contains a fault - myquery isn't IQueryable<Cat>, it is an IEnumerable<Cat>. As you tagged it correctly, this is linq-to-objects, not linq-to-sql. There is no information in the calls to construct a query.

如梦初醒的夏天 2024-12-03 04:07:00

查看 DataContext.GetCommand() 方法,该方法传递一个 IQueryable 对象并返回与查询相对应的 DbCommand 对象。 DbCommand 对象的 CommandText 属性显示查询的文本。

Check out the method DataContext.GetCommand() which is passed an IQueryable object and returns the DbCommand object that corresponds to the query. The CommandText property of the DbCommand object shows the text of the query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文