问题标签 [micro-orm]

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

c# - 如何使用 dapper 将 DbGeography 插入 SQL Server

我已经创建了模型using System.Data.Entity.Spatial;

插入数据库

我得到了例外type System.Data.Entity.Spatial.DbGeography cannot be used as a parameter value

我试过寻找插入的方法,是我能找到的最好的方法,但它试图只插入 1 个参数,我应该怎么做才能插入一个具有 dbgeography 成员的对象?

更新#1

我已经放弃了尝试破解或扩展东西,因为我对 dapper 很陌生,而且时间目前不在我身边。我回到了基本做这件事,因为我不需要非常频繁地进行地理数据类型插入

0 投票
1 回答
2632 浏览

c# - 使用 dapper 查询空间数据

我发现了一些相关的问题,但作者放弃了,继续使用存储过程进行“映射”。

这实际上是here的一个延续问题

模型

查询

Dapper 不了解空间数据,正如许多人所说,支持特定于供应商的实现并不是作者的初衷。Query<T>但是很难找到扩展支持的文档

0 投票
2 回答
879 浏览

c# - 为什么 ServiceStack OrmLite v4 中不再存在“Limit()”方法?

在 ServiceStack OrmLite v3 中,您可以执行以下操作:

或者:

但是我在 v4 中再也找不到这些方法了。

我想我可以改为执行以下操作:

但是,我怎样才能做一个db.Select(不必编写直接 SQL)将转换为(例如在 SQLite 中):

此外,是否可以为以下内容编写等效查询(同样无需编写直接 SQL)?

谢谢。

0 投票
1 回答
4511 浏览

c# - dapper.net 多次删除问题

我正在尝试从 ac# 类中具有两个不同变量的两个表中删除,但我收到以下错误消息:

使用多映射 API 时,如果您有除 Id 以外的键,请确保设置 splitOn 参数名称:splitOn

通过 SQL Profiler 捕获命令时 sql 语句执行得很好,所以我很难过。

简洁的代码是:

我已经成功地使用了多选语句,但这在我使用两个匿名参数的意义上略有不同。

0 投票
1 回答
507 浏览

entity-framework - 在 Orchard 中使用 Entity Framework 或 Micro ORM

我最近发现了我要去工作的一家公司使用的Orchard 。这个 CMS 设计得非常好,您可以进行很多自定义。

但是,我没有找到任何示例来解释如何在 Orchard 之外创建一组表,然后使用像NPoco这样的 Micro ORM或使用像 Entity Framework 这样的更多 SQL 抽象工具对这些表进行 CRUD 操作。

以后不想用 Orchard 的迁移引擎来改这些表,因为我已经有了自己的自制引擎。换句话说,这些表将完全由我的引擎驱动。

同样,如果有一些例子来说明如何注入这些组件的依赖关系,那就太好了。依赖项是 SqlConnection 或 Context。

谢谢你。

0 投票
1 回答
418 浏览

dapper - 有什么方法可以使用 Dapper 的多重映射和每种类型的显式函数?

在使用 Dapper (Dapper-Dot-Net) 的多图语义时,我们正在寻找以下功能:

因此,当 Dapper 将 IDataReader 拆分为 'Foo' 类型时,它会将所有值作为动态传递给fooFunc并因此对 'Bar' 执行相同的操作。传入的“动态”对象将代表拆分列(就像常规多映射可能具有重复的列名一样)。

我们怎样才能做到这一点?

背景

我们在一些遗留数据库上广泛使用 Dapper,但由于许多旧模式被迫使用动态输出将结果映射到对象(不同的列名、嵌套对象等)

现实情况是,尽管我们正在编写手动映射,但数据库(不在我们的控制范围内)和我们的对象之间的任何不一致都是在 Func 中完美而明确地定义的。一个包含 50 个表的数据库(我认为是中型的)只需要几个小时就可以绘制出来,并且只占任何开发时间的一小部分……完全值得。

这是好的部分。

我们正在努力解决的部分是,我们很难从我们的函数中获得良好的代码重用,即使它们在使用时表现完美。理想情况下,我们可以通过某种方式使用 Dapper 的多映射,但为每个类型分配一个 Func:

我研究了 ITypeMap 和 IMemberMap ,它们似乎是针对每个字段的自定义映射。我们真的在寻找基于每种类型的自定义映射(我们将处理分配)。

我很高兴自己尝试将其构建到 Dapper 中(并且在过去做出了如此微小的贡献),但希望得到一些指导。

谢谢!

更新

我目前正在尝试Query<dynamic,dynamic,Foo>,但这并没有正确拆分。如果它确实拆分正确,这可能对我们有用。我们可以有效地将每个动态插入到我们的函数中并返回我们的强类型对象:

0 投票
1 回答
200 浏览

entity-framework - 使用 lambda 在实体框架或微 ORM 中按子句分组

如何使用 Lambda 表达式(实体框架或微 ORM)使用以下查询?

0 投票
1 回答
1901 浏览

c# - 为什么 NPoco 几乎随机地忽略列和属性名称和映射?

我正在使用 NPoco ORM(PetaPoco 的一个分支),但我刚刚注意到它在某些情况下会错误地映射列。

我正在使用存储过程,并且我的 POCO 属性名称与存储过程生成的列名称相同:

存储过程是一个简单的 SELECT 语句,其中包含几个变量(删除它们没有帮助):

NPoco 中是否有一个函数会导致它猜测映射(忽略它们的名称)?如果是这样,我该如何禁用它并强制它仅根据列和属性名称匹配?

目前唯一的解决方法似乎是使用列属性 <-- 也不起作用

目前,甚至有人自动格式化存储过程(或任何导致列顺序更改的更改)都在破坏应用程序。

编辑 2

我注意到如果我重新启动网站应用程序(例如通过编辑 web.config 或更新应用程序代码),那么列顺序会自行修复。所以我只能假设问题与 NPoco 内部缓存列索引有关——如果索引发生变化,那么映射将不正确。我不确定是否有清除缓存的机制可能不起作用?

0 投票
1 回答
3640 浏览

c# - PetaPoco - 如何关闭自动增量?

我在尝试插入时遇到了这个错误:

无法将值 NULL 插入“Id”列

事实证明,PetaPoco 默认假定 Id 列是自动递增的,因此即使您提供了一个值,它也会尝试插入 null。我在这里找到了问题的错误票:https ://dnntracker.atlassian.net/browse/DNN-23217 。

我正在使用 PetaPoco 的 T4 模板来生成我的数据库类。我创建了一个部分类并应用了数据注释来禁用自动增量:

不过好像没什么效果。当我指定一个整数时,PetaPoco 仍在尝试为 Id 列插入 null。

0 投票
3 回答
4606 浏览

c# - 如何在 Dapper.NET 中添加动态搜索值

我正在使用Dapper.NET. 用户可以通过发票编号和购买日期进行搜索。

如果用户在文本框中填写发票编号,则按发票编号搜索,
如果用户填写发票编号和购买日期,则按发票编号和购买日期搜索,
如果用户填写购买日期,则按购买日期搜索

所以,查询:

问题是我不知道如何根据查询中的条件数量动态传递值。