Dapper.NET 基本参数化SQL

示例

Dapper可以通过完全参数化的SQL轻松遵循最佳实践。

参数很重要,因此使用dapper可以很容易地正确设置参数。你只是表达了RDBMS的正常方式的参数(通常@foo,?foo或:foo)并给予短小精悍的一个对象有一个称为成员foo。最常见的方法是使用匿名类型:

int id = 123;
string name = "abc";
connection.Execute("insert [KeyLookup](Id, Name) values(@id, @name)",
    new { id, name });

而且...就是这样。Dapper将添加所需的参数,并且一切正常。

使用对象模型

您还可以将现有的对象模型用作参数:

KeyLookup lookup = ... // 一些现有实例
connection.Execute("insert [KeyLookup](Id, Name) values(@Id, @Name)", lookup);

小巧玲珑使用命令文本确定对象的成员加入其中-它一般不会增加不必要的东西一样Description,IsActive,CreationDate因为我们已经清楚地发出的命令不涉及他们-虽然有些时候可能做的,例如,如果您的命令包含:

//TODO-暂时删除;在插入内容中包含@Description

它并没有试图指出以上只是注释。

存储过程

存储过程的参数工作原理完全相同,只是dapper无法尝试确定应该/不应该包括的内容-所有可用的东西都被视为参数。因此,通常首选匿名类型:

connection.Execute("KeyLookupInsert", new { id, name },
    commandType: CommandType.StoredProcedure);