问题标签 [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.
c# - Dapper Contrib Insert MatchNamesWithUnderscores 映射器不工作
Dapper.DefaultTypeMap.MatchNamesWithUnderscores
不适用于插入。映射器适用于该Get<>
方法。我在我的 ASP.NET Core 1.0 RC2 项目中使用以下版本以及 postgres 数据库。
代码片段
执行的插入 SQL 语句
Foo 类
富表
c# - 查询一对多数据时如何使用带有 petapoco 的通用存储库
我正在使用通用存储库和 petapoco 微型 ORM。我将它用于 Northwind 数据库作为示例项目。由于 petapoco 不处理任何连接,因此我在 Customer 类中创建了一个列表属性。以下是我的存储库类的一部分
虽然 GetById 使用通用变量 T,但我无法在 GetOrdersAndCustomersByCustomerId 中使用它。相反,我必须使用特定的 Customer 类。否则我无法使用这一行:customer.Orders.AddRange(orders); 正如它所抱怨的那样,“T”没有“订单”的定义。反正有没有使这种方法通用?
dapper - 带有 Access 的 Dapper,更新语句部分不起作用
我有一个产品类并尝试使用 Access 数据库评估 Dapper。选择、删除和插入操作工作正常,但更新操作有问题。它以一种方式工作,只有下面的代码)
当我尝试根据ProductNumber更改描述时,它可以工作(updateStatement2)并且描述得到更新,但是当我尝试 根据 描述(updateStatement1)更改ProductNumber时它不起作用并且 ProductNumber 没有得到更新。这对我来说有点奇怪。这是一个错误还是我错过了什么?我的数据库只是一个基本的,没有设置主键。我在下面附上了截图
(有关更多信息,请参阅下面的代码)
我正在使用 Dapper 1.50.2 版。这是我的数据库截图
c# - PetaPoco 中的 sql builder 有什么用?
我在 petapoco 中有这段代码
它固有地调用以字符串为参数的 Fetch 方法。那为什么我们在 petapoco 中需要 sql builder 呢?
c# - 使用 Dapper 查询复杂对象
我有一个具有以下属性的 Customer 类:
我的目标是编写一个 Dapper 查询,该查询将使用内部联接来填充返回的每个 Customer 中的整个 Address 属性。
这是我所拥有的,它正在工作,但我想知道这是否是最干净/最简单的方法:
我对添加另一个属性有些担心,例如:
我不确定如何切换上面的语法来填充地址和联系人。
c# - 如何使用 dapper 执行参数化 DAX 查询?
我想通过 ADOMD.NET 使用 Dapper 执行具有动态参数的 DAX 查询?可能吗?我知道我必须使用 DynamicParameters。我的问题是关于 Dapper 是否支持参数化 DAX 查询。
编辑:
我的查询看起来像:
执行查询的代码是:-
我收到 System.NotSupportedException 并显示消息“不支持指定的方法。”。简单的连接。使用实际值而不是参数进行查询。
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 属性,但我想检查以防万一),例如:
所有输入表示赞赏。
orm - ORM和微ORM有什么区别?
请提及(大)ORM 和微 ORM 之间的区别。微 ORM 相对于大 ORM 有哪些优势。例如。实体框架ORM和dapper micro ORM的区别。
c# - 我可以从一个 poco 填充多个表吗?
我正在调查使用 ORM 来访问我们的 DataVault。到目前为止,PetaPoco 看起来最有前途,但我并不局限于那个。
我们识别的大多数对象都嵌入在 Hub 和 Sat 的组合中,其中 Hub 包含 BusinessKey,Sat 包含附加信息。在 poco 中,它看起来像这样(简化):
因此,每当我们谈论客户时,它总是涉及到集线器与其周六的结合。通常,ORM 一次连接一个表,但这对于数据保险库不是很有用:您总是希望使用适用的 Sat 查询或插入集线器。
是否可以从一个 poco 更新或插入多个表?