我在C#遇到过一些我以前从未见过的东西(至少我不认识它)...此刻让我感到非常愚蠢.
我下载了Dapper,顺便说一句,这是很棒的,并且正在使用存储过程进行第一次查询.
connection.Query<MyObject>("[dbo].[sp_MyStoredProc]", new
{
Name = keywords
}, commandType: CommandType.StoredProcedure);
Run Code Online (Sandbox Code Playgroud)
intellisense方法签名说这应该是一个IDbTransaction
.这是某种类型的速记转换:
commandType: CommandType.StoredProcedure
Run Code Online (Sandbox Code Playgroud)
变成了IDbTransaction
?
谢谢!
这叫做命名参数.请参阅MSDN文章Named和Optional Arguments(C#编程指南):
命名参数使您无需记住或查找被调用方法的参数列表中的参数顺序.每个参数的参数可以通过参数名称指定.
Dapper的查询方法有许多带默认值的参数(timeout,commandType等).使用此语法,您只能指定其中一些而不指定其他语法.