相关疑难解决方法(0)

如何用Dapper实现工作单元模式?

目前,我正在尝试使用Dapper ORM与工作单元+存储库模式.

我想使用工作单元而不是简单的dapper存储库,因为我的插入和更新需要一定程度的事务处理.我一直无法找到任何有用的例子,因为大多数似乎使用实体框架并且在工作单元内存在泄漏问题.

有人可以指点我正确的方向吗?

unit-of-work repository-pattern dapper

35
推荐指数
4
解决办法
3万
查看次数

AsList()比使用返回IEnumerable的IDbConnection.Query()的ToList()更好吗?

我从Marc Gravell(@MarcGravell)那里读到了这个答案:https://stackoverflow.com/a/47790712/5779732

最后一行说:

作为代码的次要优化:首选AsList()到ToList()以避免创建副本.

该陈述是关于QueryMultiple()哪些回报GridReader.

在我的理解中,System.Linq提供了一种扩展方法IEnumerable.ToList().以下是从微软ToList().

ToList(IEnumerable)方法强制立即进行查询评估并返回包含查询结果的List.您可以将此方法附加到查询中,以获取查询结果的缓存副本.

IDbConnection.Query()将永远返回IEnumerablenull.在调用代码时可以轻松完成空检查.那么有什么区别AsList呢?

如果我的理解是正确的,AsList将始终在内部调用ToList哪个将创建副本.

考虑到这一点,是AsList()不是更好ToList()IDbConnection.Query(),它返回IEnumerable?如是; 为什么?

AsList()在这种情况下,内部是什么使它成为更好的选择?

c# linq performance database-performance dapper

10
推荐指数
2
解决办法
3543
查看次数