问题标签 [dapper-simplecrud]

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 回答
4364 浏览

c# - 没有身份的 Dapper.SimpleCRUD 插入问题

我有表用户

用户类

代码

上面的代码抛出空异常。具有身份的表工作正常。

堆栈跟踪:

在 Dapper.SimpleCRUD.Insert[TKey](IDbConnection 连接,对象 entityToInsert,IDbTransaction 事务,Nullable`1 commandTimeout)

错误信息:

Dapper.SimpleCRUD.dll 中出现“System.Exception”类型的异常,但未在用户代码中处理附加信息:无效的返回类型

0 投票
1 回答
151 浏览

dapper - Dapper SimpleCRUD 自定义处理程序被忽略

如果我使用SimpleCRUD即执行查询connection.GetList<_type>();,那么我的自定义类型处理程序将永远不会执行。如果我直接使用 执行相同的查询connection.Query<_type>(queryString),那么我的自定义处理程序会被调用而不会出现任何问题。难道我做错了什么?我可以看到 SimpleCrud 也只是调用Dapper.Query<T>. 我似乎无法找到我的问题。

0 投票
1 回答
59 浏览

entity-framework - 如何在 ORM 中将我的代码设置为 DB First

我研究过使用 EF、nHibernate 和 Dapper/Dapper.SimpleCRUD。在他们中,我无法弄清楚如何代表我的数据库(SQL Server 2012)模型的用例。我正在使用 C# 4.0/.NET 4.0 中的网格(由于技术限制)构建一个 ASP.NET 网站,该网站将具有 CRUD 功能,网格的初始状态由下拉菜单设置。

我的两个表是这样设置的:

Distribution 和 Address_Book 之间存在多对一关系,其中 Address_book.EntryID = Distribution.EntryID。

任何有关如何设置的帮助将不胜感激。我在手动管理 CRUD 操作时遇到问题,所以我认为 ORM 会有所帮助,但我无法弄清楚。任何帮助表示赞赏。

提前致谢!

0 投票
1 回答
1229 浏览

c# - 如何为多租户表配置 Dapper?

我有多租户表结构,而每个表都有TenantId,并且我使用Dapper作为唯一的 ORM 以及SimpleCRUD(助手位于顶部dapper)。如果可能(默认情况下)我更喜欢每个Read Query必须自动传递TenantIdparameter否则害怕有机会忘记。

想知道其他人是如何解决这个案子的吗?有没有有效的方法来解决这个问题?

0 投票
1 回答
604 浏览

c# - Dapper.SqlMapper.AddTypeHandler 似乎没有被 Postgres SimpleCRUD where 子句调用

我刚刚在使用 Dapper 和 SimpleCRUD 的系统上从 Npgsql v2.2.3 升级到 v3.2.4.1(现在是 V3.2.5)——其他缺席的开发人员定制了后者的版本。这不是我真正的领域——我只是想在 v3 支持下做一些 PostGIS 位......

我们有一个自定义版本的 DateTime,在 Npgsql v3.x 更严格的类型下,要求我们将 NpgsqlDbType 设置为 NpgsqlTypes.NpgsqlDbType.Timestamp。这是通过 SimpleCRUD 代码中的 Dapper.SqlMapper.AddTypeHandler 完成的。自定义版本强制日期时间类型为 UTC。

虽然这对数据库插入按预期工作,但在使用 WHERE 子句时似乎没有被调用 - 不确定它是否只是在孤立的情况下,或者只是在一个或两个地方。

我可以从 Postgres 日志中看到,WHERE 子句的参数正在针对 UTC/Local 转换进行调整:参数:$1 = '2017-07-27 13:29:51+01'

通过断点,我还可以看到类型处理程序不是为 WHERE 子句输入的,而是为 INSERT 等输入的。

问题:

我是否应该期望为 WHERE 子句参数调用 Dapper.SqlMapper 类型处理程序?

如果不是预期的行为,我如何在使用 Dapper.SimpleCRUD 时将 NpgsqlDbType 强制为 NpgsqlTypes.NpgsqlDbType.Timestamp?

非常感谢

我已经更新到 Npgsql (3.2.5) 和 Dapper (1.50.2) 的最新 NuGet 包。不确定 Dapper.SimpleCRUD 的起源,但它会在 2014 年开始使用,然后看起来可能被大量定制,因此宁愿继续这样做,而不是升级并重新添加定制。

0 投票
1 回答
732 浏览

c# - Dapper w/ SIMPLECrud:GetList 与 WHERE 的行为类似 LIKE 而不是 =

我有这个方法:

我这样称呼它:

GetList()方法调用 SIMPLECrud .dll,它是 Dapper 的包装器。

这很好用。但这是真正奇怪的事情。如果我在 guid 的末尾添加一些额外的字母或数字publicID,它仍然有效:

代替:

我愿意...

我得到完全相同的结果。如果我使 guid 更短,或者如果我更改其中的字符,那么它会按预期运行。

我在这里做错了什么?

0 投票
2 回答
424 浏览

dapper-simplecrud - SCOPE_IDENTITY 异常

我一直在评估使用 dapper 和 sqlite 的 simplecrud 扩展。无论我在插入表格时尝试什么,都会失败并出现异常

没有这样的功能 SCOPE_IDENTITY

表类

最简单的测试代码

如前所述,当我运行代码时,数据被插入到表中,但程序以SCOPE_IDENTITY异常终止。

任何帮助将不胜感激

0 投票
1 回答
1072 浏览

c# - Dapper / SimpleCRUD Insert with VARCHAR 主键抛出 FormatException - “字符串格式不正确”

我正在尝试使用 dapper 和 simplecrud 插入 postgresql 数据库。

我的实体有一个 VARCHAR 主键,我理解这意味着我必须在我的 POCO 中包含 [Key] 和 [Required] 标签。

当我使用

我得到一个 System.FormatException。“字符串格式不正确”。查看堆栈跟踪,我可以看到 Dapper 正在调用 System.Convert.ToInt64()

我有其他具有自动递增主键的实体,它们可以正常工作(所以我知道 NpgSqlConnection 工作正常)。事实上,我所有的 VARCHAR PK 实体都失败了,而我所有的自动递增 PK 实体都成功了。

我有很多属性,所以如果可以避免的话,我不想手动写出 SQL。

如何让 SimpleCRUD 与 VARCHAR/字符串主键一起正常工作?我认为 [Key][Required] 标签可以解决问题。

0 投票
1 回答
222 浏览

c# - 无法将对象传递给 Dapper.SimpleCrud 插入

我正在使用带有 Dapper.SimpleCrud 扩展的 Dapper。

在我的 Dapper 类中,我对 insert 方法进行了抽象,如下所示:

这让我可以调用 insert 并传递数据库中任何类型的对象。当前调用此方法的代码如下所示:

这会引发一个错误:{"Incorrect syntax near ')'."} 好的,所以现在我认为我传入的数据或其他东西有些奇怪。但不是。当我将自己的 Insert 方法更改为采用Menu-object 而不是 generalobject时,它可以工作。 Dapper.SimpleCrud Insert 重载方法显然无法确定它是哪个对象。你知道如何解决吗?

0 投票
1 回答
1334 浏览

c# - Dapper SimpleCRUD 强制转换:“无法将 'System.Guid' 类型的对象转换为 'System.IConvertible' 类型。”

我正在为数据库表上的基本 CRUD 操作构建一个 API。我在 ASP.NET Web API 项目中使用 C#,并且我的服务类位于单独的类库中。Dapper 和 Dapper.SimpleCRUD 用于 ORM 操作。

当我使用 将 guid 硬编码到数据库中DEFAULT NEWID()时,我的创建方法工作正常。但为了获得最佳实践,我想在控制器类中创建一个新的 guid,然后将其发送到数据库。当我这样做时,它失败了。

在控制器中:

在存储库中:

我得到"Unable to cast object of type 'System.Guid' to type 'System.IConvertible'."回应。

这是堆栈跟踪: