c# - 如何使用 SqlBuilder

标签 c# dapper sqlbuilder

这个 SqlBuilder:

var builder = new SqlBuilder(); 
var sql = builder.AddTemplate( /*...

非常愚蠢的问题,但是,我该如何使用它?我知道它在 Dapper.Contrib 中,但仅使用 using 语句是不够的。我需要添加哪些引用或其他 using 语句?

最佳答案

这个问题出现在 dapper 教程页面,所以我正在更新答案。

在 1.6 版本中,SqlBuilder 位于命名空间 Dapper 中。它包含在 nuget 包 Dapper.SqlBuilder 中。

这是它如何工作的一个例子:

var builder = new SqlBuilder();
builder.Select("id_something");
builder.Select("MyCol");
builder.Select("OtherCol");
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@MyParam", 3, DbType.Int32, ParameterDirection.Input);
builder.Where("id_something < @MyParam", parameters);
// builder.Where("id_something < @MyParam", new { MyParam =3}); //this is other option for params.
builder.InnerJoin("OtherTable on OtherTable.id=MyTable.id");
//The /**something**/ are placeholders,
var builderTemplate = builder.AddTemplate("Select /**select**/ from MyTable /**innerjoin**/ /**where**/ ");
var result = connection.Query<MyClass>(builderTemplate.RawSql, builderTemplate.Parameters);

这是生成的Sql:

Select id_something , MyCol , OtherCol
 from MyTable 
INNER JOIN OtherTable on OtherTable.id=MyTable.id
 WHERE id_something < @MyParam

关于c# - 如何使用 SqlBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19009550/

相关文章:

C#:C# 中的字典是否具有类似于 Python setdefault 的内容?

c# - 将 IAsyncEnumerable 与 Dapper 一起使用

java - 不使用 Maven 获取 QueryDSL JAR 文件

dapper - 如何使用 Dapper.SqlBuilder 和 OrWhere 构建动态 sql 查询

c# - C#中如何使用prim算法遍历矩形数组中的单元格

c# - 使用自定义表情符号 Windows Phone

c# - Dapper 在 Mono 上工作吗?

c# - SqlBuilder 返回错误结果

c# - 等待所有线程完成的有用模式是什么?

c# - 使用 Dapper 将 C# bool 作为参数传递给 Oracle