stackoverflow.com的Dapper Micro ORM分结果给我留下了非常深刻的印象.我正在考虑将其用于我的新项目,但我有一个担忧,那就是有时我的项目需要有存储过程,我在Web上搜索了很多次,但没有找到任何关于存储过程的东西.那么,有没有办法让Dapper使用存储过程呢?

请让我知道,如果可能的话,否则我必须以我的方式扩展它.

推荐答案

在简单的情况下,您可以执行以下操作:

var user = cnn.Query<User>("spGetUser", new {Id = 1}, 
        commandType: CommandType.StoredProcedure).First();

如果你想要更别致的东西,你可以做:

 var p = new DynamicParameters();
 p.Add("@a", 11);
 p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output);
 p.Add("@c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);

 cnn.Execute("spMagicProc", p, commandType: CommandType.StoredProcedure); 

 int b = p.Get<int>("@b");
 int c = p.Get<int>("@c"); 

此外,您可以成批使用exec,但这样做比较麻烦.

.net相关问答推荐

使用PowerShell在Windows容器内安装exe

从没有流的EventStore中读取流不存在异常

dotnet 8 web api在部署到docker后无法工作

如何按需计算一个值并将该值缓存在FP/F#中?

在 Rx 中,处理线程安全是否是消费者(IObserver)的责任?

.NET 的future 版本会支持 C# 中的元组吗?

为什么 C# 不允许像 C++ 这样的非成员函数

哪个单元测试框架?

如何在 WPF 中创建/制作圆角按钮?

操作对事务的状态无效错误和事务范围

在 C# 中使用委托

在 .NET 中填充整数列表

迭代器和枚举器的区别

如何确定字符串是 C# 中的有效 IPv4 还是 IPv6 地址?

.NET 中的对象引用有多大?

使用 C# 设置全局热键

静态方法继承的正确替代方法是什么?

判断对象列表是否包含具有特定值的属性

ValueTypes 如何从 Object (ReferenceType) 派生并且仍然是 ValueTypes?

如何使用 AutoMapper .ForMember?