问题标签 [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 投票
2 回答
4732 浏览

c# - Dapper Contrib Insert MatchNamesWithUnderscores 映射器不工作

Dapper.DefaultTypeMap.MatchNamesWithUnderscores不适用于插入。映射器适用于该Get<>方法。我在我的 ASP.NET Core 1.0 RC2 项目中使用以下版本以及 postgres 数据库。

代码片段

执行的插入 SQL 语句

Foo 类

富表

0 投票
1 回答
480 浏览

c# - 查询一对多数据时如何使用带有 petapoco 的通用存储库

我正在使用通用存储库和 petapoco 微型 ORM。我将它用于 Northwind 数据库作为示例项目。由于 petapoco 不处理任何连接,因此我在 Customer 类中创建了一个列表属性。以下是我的存储库类的一部分

虽然 GetById 使用通用变量 T,但我无法在 GetOrdersAndCustomersByCustomerId 中使用它。相反,我必须使用特定的 Customer 类。否则我无法使用这一行:customer.Orders.AddRange(orders); 正如它所抱怨的那样,“T”没有“订单”的定义。反正有没有使这种方法通用?

0 投票
1 回答
1248 浏览

dapper - 带有 Access 的 Dapper,更新语句部分不起作用

我有一个产品类并尝试使用 Access 数据库评估 Dapper。选择、删除和插入操作工作正常,但更新操作有问题。它以一种方式工作,只有下面的代码)

当我尝试根据ProductNumber更改描述时,它可以工作(updateStatement2)并且描述得到更新,但是当我尝试 根据 描述(updateStatement1)更改ProductNumber时它不起作用并且 ProductNumber 没有得到更新。这对我来说有点奇怪。这是一个错误还是我错过了什么?我的数据库只是一个基本的,没有设置主键。我在下面附上了截图

(有关更多信息,请参阅下面的代码)

我正在使用 Dapper 1.50.2 版。这是我的数据库截图

在此处输入图像描述

0 投票
1 回答
2622 浏览

c# - PetaPoco 中的 sql builder 有什么用?

我在 petapoco 中有这段代码

它固有地调用以字符串为参数的 Fetch 方法。那为什么我们在 petapoco 中需要 sql builder 呢?

0 投票
2 回答
9614 浏览

c# - 使用 Dapper 查询复杂对象

我有一个具有以下属性的 Customer 类:

我的目标是编写一个 Dapper 查询,该查询将使用内部联接来填充返回的每个 Customer 中的整个 Address 属性。

这是我所拥有的,它正在工作,但我想知道这是否是最干净/最简单的方法:

我对添加另一个属性有些担心,例如:

我不确定如何切换上面的语法来填充地址和联系人。

0 投票
0 回答
380 浏览

c# - 如何使用 dapper 执行参数化 DAX 查询?

我想通过 ADOMD.NET 使用 Dapper 执行具有动态参数的 DAX 查询?可能吗?我知道我必须使用 DynamicParameters。我的问题是关于 Dapper 是否支持参数化 DAX 查询。

编辑:

我的查询看起来像:

执行查询的代码是:-

我收到 System.NotSupportedException 并显示消息“不支持指定的方法。”。简单的连接。使用实际值而不是参数进行查询。

0 投票
2 回答
884 浏览

c# - 无法使用 Column 属性将属性关联到使用 AsyncPoco 的列名称

我正在使用 NuGet 包AsyncPoco v1.2,它是官方PetaPoco的异步分支——“为你的 POCO 准备的一个小小的 ORM-ish 东西”。选择的 DBRM 是 Oracle,但这无关紧要。

到目前为止,经典的 PetaPoco 包一直像魅力一样工作,但我的问题是 AsyncPoco 包没有使用Column属性的值,而是完全忽略它,只是使用属性名称作为直接列标识符。

例子:

我创建了 Poco

我将值分配给所需的属性,然后尝试执行 InsertAsync

但是,我在尝试 InsertAsync 时收到以下错误:“Oracle.ManagedDataAccess.Client.OracleException: ORA-00904: "NAME": invalid identifier"

这显然是正确的,因为标识符实际上是“name_col”,如 Column 属性值中所述。

当我更改 Poco 对象以使其包含实际的数据库列名称作为其属性名称时,插入工作正常,例如:

是否可以使用列属性来识别表列,或者是否有其他解决问题的方法?我希望我遗漏了一些东西,否则我们将不得不放弃这个包,因为我们不能在业务代码中使用这些非常规的属性名称。将表列名称更改为 pascal/camel-case 不是一个选项,因为它违反了我使用的标准。

编辑:我查看了包的源代码,我认为可能会发生名称转换(/AsyncPoco/Core/ColumnInfo.cs),看起来很奇怪,它没有采用 ColumnAttribute 即使它应该是,这是代码:

我试图通过使用 ColumnAttribute 的 Name 属性来明确说明列的名称,但它没有改变任何东西(因为它不应该改变,因为该参数在其他地方被分配给 ColumnAttribute 的 Name 属性,但我想检查以防万一),例如:

所有输入表示赞赏。

0 投票
1 回答
2765 浏览

orm - ORM和微ORM有什么区别?

请提及(大)ORM 和微 ORM 之间的区别。微 ORM 相对于大 ORM 有哪些优势。例如。实体框架ORM和dapper micro ORM的区别。

0 投票
1 回答
216 浏览

c# - 我可以从一个 poco 填充多个表吗?

我正在调查使用 ORM 来访问我们的 DataVault。到目前为止,PetaPoco 看起来最有前途,但我并不局限于那个。

我们识别的大多数对象都嵌入在 Hub 和 Sat 的组合中,其中 Hub 包含 BusinessKey,Sat 包含附加信息。在 poco 中,它看起来像这样(简化):

因此,每当我们谈论客户时,它总是涉及到集线器与其周六的结合。通常,ORM 一次连接一个表,但这对于数据保险库不是很有用:您总是希望使用适用的 Sat 查询或插入集线器。

是否可以从一个 poco 更新或插入多个表?

0 投票
1 回答
3853 浏览

c# - 使用 Dapper 的内部联接获取数据

我正在对一个项目进行数据库操作并开发 WinForms App C#,并且我正在使用 Dapper 从数据库中获取数据,我陷入了需要使用内部联接检索数据的情况。例如。我有两张表 Authors 和 Book as Follow :

现在在 SQL Server 中,我可以使用以下查询轻松地从中获取数据:

但是我不知道如何使用 dapper 多重映射来做到这一点,我也看到了类似 This的文章,但无法理解它是如何工作和拆分的。如果我能用我的班级设计获得相同的解决方案,我会很棒。感谢。

这是我想要的输出:ResultSet