问题标签 [dapper-extensions]

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 投票
2 回答
2503 浏览

factory - 创建一个处理 DatabaseFactory 的 DbContext 以更轻松地使用 DapperExtensions

这几天,我尝试使用DapperExtensions提出的一些基本 CRUD 函数创建一个抽象的基础存储库。但是作为示例给出的代码使用了用于连接到 SQL Server 数据库的 SqlConnection。我希望能够连接到所有类型的数据库(SQL Server、MySql 等......)。他们的代码示例也针对每个 CRUD 函数重复,如下面的代码所示

所以我正在考虑创建一个DbContext来处理连接的创建、打开和关闭,还可以根据我要使用的数据库类型(一种数据库工厂)创建正确的连接对象。

有没有人已经做过并且可以分享他的代码?

感谢你们 !

0 投票
2 回答
6398 浏览

dapper-extensions - DapperExtensions 和 Dapper.Contrib 与非 dbo 架构

我正在使用 DapperExtensions v4.0.30319,我试图让 Dapper.Contrib 知道我的架构不是 DBO。我提供了:

我从 DapperExtensions 文档 ( https://github.com/tmsmith/Dapper-Extensions/wiki/Customized-mapping-for-a-class ) 中了解到,将使用反射自动找到此类?

但我也尝试明确使用:

无论哪种方式,当我使用 Dapper.Contrib 时:

生成的插入语句未指定任何模式。

如何使用 Dapper.Contrib 进行插入(或更新等),它使用我指定的表模式?

0 投票
1 回答
4893 浏览

c# - 如何使用来自 LINQ 的动态处理 Dapper 返回键值对

我是 Dapper 的新手。让我解释一下我想要实现的目标。我有一个简单的查询,它从数据库返回列,我不想为它创建实体(属性)类来填充数据。我想为此使用动态类型。下面是我的代码:

它返回给我键值对。如下所示: 衣冠楚楚的行

有什么办法吗,我只写了一种常用方法来获取 List 作为“Property”=“Value”正如我们通常在使用任何实体类时得到的那样。

我不确定它是否可以实现,但我想了解它是否可能并希望在我们的应用程序中实现。

我可以通过通过我不想要的 dapperrows 实现循环来实现这一点。因为如果会有 10000 行循环将迭代 10000 次。

提前致谢。

0 投票
2 回答
5898 浏览

c# - 如何记录/获取 Dapper Extensions 自动生成的 SQL 查询?

我正在使用 Dapper Extensions (DE) 作为 ORM。它在使用存储库模式实现的数据访问层中使用。SQL Express 是后端 RDBMS。

DE 会自动为我生成大部分查询。我想记录这些自动生成的查询以进行调试。

我可以看到有两种方法可以实现这一目标:-

  1. 获取 DE 生成的 SQL 查询(执行之前或之后)并将其写入日志。这对我来说是首选方式,因为我已经有了我的日志记录模块(使用 log4net)。我唯一需要的是 DE 生成的 SQL。
  2. 将 DE 与一些日志记录工具集成。我读了这个答案。看起来可以使用 MiniProfiler 工具;但正如我上面所说,我已经有了我的日志记录模块。我不想使用其他工具来记录 SQL 查询。

如何在不使用任何其他日志记录工具的情况下记录/获取 Dapper Extensions 自动生成的 SQL 查询?

另一个类似的问题是关于 Dapper。这个问题是关于 Dapper Extensions 的。

0 投票
1 回答
819 浏览

c# - 使用 Dapper Extensions 出现消息“没有映射列”的异常

我有一个class实现了一些interface

在此之后,我使用 Dapper Extensions 将对象插入数据库。此代码运行良好:

但是当我尝试插入 this 的一个实例class,在相应的 上进行转换时interface,它给出了一个异常:

System.ArgumentException: '没有映射列。'

0 投票
2 回答
363 浏览

dapper - DapperExtensions 通用使用来自分离模型的谓词填充模型

我正在开发一个使用 Dapper、使用通用模型的 DapperExtensions 的项目,我想知道如何使用 DapperExtension.GetAll 方法填充模型?

下面是返回我尝试使用 DapperExtensions 过滤的记录的 sql 代码。

我做了一些研究,发现您可以使用 Split.on,但不确定这是否适合这种情况

GetAll 方法看起来像这样,所以我们确实有能力过滤记录

任何帮助将不胜感激。我已经接受了创建一个 SPROC 来填充模型的想法。只是试图确定最有效的路线。

好吧,我设法使用以下方法填充我的模型,仍然希望听到反馈或可能的建议。

0 投票
1 回答
897 浏览

c# - 使用 DapperExtensions 比较两个字段的谓词

在做了很多这些之后,我试图在 C# 中为 Dapper-Extensions 创建一个看似相对简单的谓词语句,但在一种情况下,我需要比较两个字段而不是一个字段和一个固定的对象值:

我不能(或不知道如何)访问 value 参数中的表达式,所以必须有其他方法吗?

感谢您提供的任何见解。

0 投票
1 回答
646 浏览

c# - 使用 Dapper 扩展的外键和数据透视表

我正在对项目中与数据库相关的所有内容使用诸如插入之类的小巧扩展方法,但我无法将模型相互连接。数据库中有 4 个表:category、event、speaker 和 eventspeaker(数据透视表)。有没有办法像在 NHibernate 中使用类映射一样?或者我是否必须将所有外键更改为 int 并在保存、更新等方法中执行所有操作?

0 投票
1 回答
3836 浏览

dapper - 有没有办法使用 Dapper 的一些 .Insert 扩展方法将属性映射到列名?

我对这门课有以下挑战:

数据库中对应的数据表有as字段: Id (int, not null) Last-Name (nvarchar(80),null)

所以我需要映射MyClass.LastNameMyClasses.Last-Name度过一段地狱般的时光......

当我编写自定义插入查询时,一切正常,但我想使用 Dapper 扩展包之一的 .Insert 语句。

我尝试了 Dapper.Contrib,但这忽略了我使用 Dapper.FluentMap 或使用 Dapper 本身的内置方法创建的映射Dapper.SetTypeMap

我尝试了 Dapper.FastCrud,但我无法弄清楚如何为其配置映射,尽管这个 API 看起来很有希望。

任何人?

0 投票
2 回答
731 浏览

c# - Dapper 在 ID 列上返回 SQL 转换错误

在我的数据库中,我有一个 nvarchar 类型的 ID 列,因为它包含唯一的用户名。在我的 .Net MVC 应用程序中,我使用 Dapper 来处理数据库交换。然后DapperExtensions.Get(dynamic id)我在我的模型上使用 ID 字段获取特定条目。这在所有情况下都很好用,除了出现以下错误的用户:

将 nvarchar 值“abcdefg”转换为数据类型 int 时转换失败。

我知道这是 ID 列,因为当它用于使用 Dapper 提取实体时,该值存在于我的 User 模型的 ID 属性中。我最好的猜测是,也许 Dapper 期望该dynamic id参数是一个 int 并试图这样使用它。我希望比我自己更了解的人对此进行澄清。

我已确保我的数据库表为此字段使用 nvarchar 并将其标记为主键。

谢谢