Csharp/C#教程:使用Linq-to-Sql表达式生成SQL子句分享


使用Linq-to-Sql表达式生成SQL子句

我想创建一个可以使用Expression并使用Linq-To-Sql生成所需SQL语句的存储库模型。

例如,我有一个这样的function:

// Possible criteria Expression<Func> criteria1 = p => p.Price > 1000; // Function that should take that criteria and convert to SQL statement static IEnumerable GetCustomers (Expression<Func> criteria) { // ... } 

在函数内部,我想使用Linq-To-Sql将条件转换为SQL语句。

我知道你可以使用DataContext.Log来查看执行的查询和DataContext.GetCommand(query).CommandText以便在执行之前查看完整的查询。 但是,我想只生成整个表达式的一部分。

我希望完成的是使我的存储库抽象出底层技术(Linq-to-Sql,Dapper等)。 这样我就可以将Expression传递给存储库,让它生成正确的语句并使用正确的技术来执行它。

你可以这样做:

 string sql = DataContext.GetTable().Where(criteria).ToString(); 

ToString()为您提供SQL表达式。 然后,您可以使用正则表达式来提取WHERE子句。

上述就是C#学习教程:使用Linq-to-Sql表达式生成SQL子句分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1037645.html

(0)
上一篇 2022年1月25日
下一篇 2022年1月25日

精彩推荐