问题标签 [dapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
20981 浏览

c# - 使用 Dapper 填充 Enum 属性

在使用 Dapper 的 Query() 函数时,我试图填写一个具有枚举值属性的类。在我的数据库中,此列存储为一个字节。但是,在课堂上,它们是一个枚举。在旧的 ADO.NET 方法中,我会在阅读器循环期间进行转换:

使用 Dapper 时,我不知道如何进行这种转换。例如,当我做类似的事情时

我得到一个类型的错误

有没有办法使用 Dapper 的 Query() 来填充一个包含枚举类型属性的类?

0 投票
1 回答
7002 浏览

orm - 为嵌套对象编写 Dapper 查询

我有一个代码结构如下:

这是我的存储过程,它从数据库中填充数据。

如何编写从数据库中提取所有人员的 Dapper 查询?

例子:

List<Person> Persons = DbConn.Query<Person>("SpGetAllPersons", CommandType.StoredProcedure);

0 投票
1 回答
8049 浏览

c# - 如何使用 Dapper 有效地选择聚合对象?

假设我有一系列形成聚合的对象。

使用 Dapper,从数据库中的表中填充这些的最佳方法是什么(在我的情况下是 postgres,但这不重要)。示例中的表格与对象模型几乎是一对一的。表示与每个从属对象的外键关系的类的 Items 属性。即3个表,A和B是一对多关系,B和C是一对多关系。

因此,对于一个给定的 AI ID,我希望我的对象也拥有它们的所有子数据。

我最好的猜测是我应该以某种方式使用 QueryMultiple 但我不确定如何最好地做到这一点。

0 投票
3 回答
33554 浏览

c# - Dapper 和匿名类型

Dapper 可以使用匿名类型吗?

我可以看到你如何使用动态即

那么是否可以做一个

或者之后的一些变化?

编辑

我想我会向你展示我现在是如何使用 Dapper 的。我倾向于缓存(使用 InMemoryCache)数据,所以我只在开始时执行一个大查询(使用 Dapper 非常快),然后我使用 Linq 在我的存储库中对其进行排序。

InMemoryCache 看起来像这样

0 投票
3 回答
11524 浏览

c# - 有没有办法通过字符串或索引访问 Dapper FastExpando 中的列?

我正在拉入一个Dapper FastExpando对象,并希望能够在运行时而不是在设计/编译时动态引用列名。所以我希望能够做到以下几点:

我希望能够做到以下几点:

我明白我可以做到:

但我不能这样做,因为我需要的属性的名称要到运行时才能知道。

这个 SO Question的答案不起作用。我仍然得到同样的Target Invocation例外。所以...

有什么办法可以用 Dapper FastExpando 做我想做的事吗?

0 投票
3 回答
6100 浏览

c# - 将枚举作为字符串存储在数据库中

我正在尝试使用 dapper。我有一个类,它有一个枚举,值作为字符串存储在数据库中。

这适用于使用 GenericEnumMapper 的 FluentNHibernate

是否可以对 Dapper 做同样的事情?

0 投票
2 回答
2109 浏览

sql-server - 使用 SqlConnection / System.Transactions 的每请求会话

我刚刚开始在一个项目中使用 Dapper,在过去的几年中主要使用的是 NHibernate 和 EF 等 ORM。

通常在我们的 Web 应用程序中,我们实现每个请求的会话,在请求开始时开始事务并在结束时提交。

在直接使用 SqlConnection / System.Transactions 时,我们是否应该做类似的事情?

StackOverflow 是如何做到的?

解决方案

听取@gbn 和@Sam Safron 的建议,我没有使用交易。在我的情况下,我只做读取查询,所以似乎没有真正的要求使用事务(与我被告知的隐式事务相反)。

我创建了一个轻量级会话接口,以便我可以使用每个请求的连接。这对我来说非常有益,因为使用 Dapper 我经常需要创建一些不同的查询来构建一个对象,并且宁愿共享相同的连接。

每个请求的连接范围和处理它的工作由我的 IoC 容器 (StructureMap) 完成:

0 投票
2 回答
17575 浏览

c# - 在 Oracle 中使用 Dapper

我们使用 Oracle 作为我们的数据库提供者,并且已经考虑用在底层使用 Dapper 的更合理的基于存储库的模式来替换我们的一些数据访问层(难以维护,更难合并 XSD)。但是,我们在将它与 oracle 一起使用时遇到了许多问题。

  • 命名参数:这些似乎被忽略了,每当它们在查询中使用时,Oracle 似乎会以它喜欢的任何顺序解释它们。SqlMapper 返回正确命名的参数,它们只是在 Oracle 中没有正确解释

  • 变量的“@”命名约定与 oracle 命名参数不兼容。它希望在任何参数前面看到“:”

有没有人以前遇到过这种情况并有任何解决方法?

0 投票
1 回答
4061 浏览

dapper - Dapper - 具有单个返回值的多重映射

下面是我用来返回对象的分页列表的代码:

虽然这可行,但这意味着我必须定义我的条件两次,一次用于计数查询,一次用于结果集查询。我可以只执行一个查询,而不是求助于字符串连接:

但是,我似乎无法使用 Dapper 进行映射。我不能使用与上面相同的方法,因为没有多个结果。我尝试过使用多重映射,但这预计会返回一个 IEnumerable。

我将如何映射到以下内容?

谢谢

0 投票
4 回答
24600 浏览

.net - Dapper 是否支持 SQL 2008 表值参数?

有谁知道是否可以使用 Dapper 将表值参数数据传递给存储过程?