问题标签 [dapper]
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.
join - Petapoco 的多重映射可以处理多个 JOIN 吗?
我有一个使用 Petapoco 填充的对象列表。
类属性和名称与数据库模式相匹配。主类是Issue,它与另外两个名称和属性也与数据库模式匹配的类相关:Condition和SeverityLevel。
实际上,当我检索问题列表时,我正在使用多重映射功能使用单个命令检索问题列表和相关的SeverityLevel :
现在,因为 Petapoco 似乎不处理多个 JOINS,所以我需要执行第二步,将SourceCondition和TargetCondition附加到我检索到的每个问题。
为此,我可以:
- 在 foreach 循环中,在读取之后附加源和目标条件,
- 或检索整个条件列表,然后使用相同的 for-each 附加到每个问题。
目前,我正在使用第二种解决方案,因为数据库中的 Condition 集是有限的。
无论如何,这样做对我来说听起来有点沉重,因为它需要完成的查询几乎与添加的 JOINED 表一样多。
我想知道我是否可以实现这样的工作:
亲爱的 Petapoco 用户,亲爱的 Petapoco 作者,这是处理这个问题的方法吗?
我可以使用 Dapper 来处理这个问题吗(如果可以的话……),我绝对想保留 Petapoco 用于我的更新/插入操作?
sql-server-2008 - 将 Dapper 与 SQL 空间类型用作参数
我有一个系统,它基本上必须执行这样的查询:
这在使用普通 SQL 参数时非常简单,您只需以非典型方式创建参数(其中 builder 变量是我用来创建矩形的 SqlGeometryBuilder):
现在,当我尝试使用 dapper 执行此操作时,我收到一个错误,它无法弄清楚如何将其用作参数。任何有此工作的人,或有关如何启用此功能的任何指示?我确实有一个解决方法,但这涉及使用字符串表示并将其转换为我的 SQL 查询中的几何类型。我真的不想那样。
要回答评论,我得到的错误是“Microsoft.SqlServer.Types.SqlGeometry 类型的成员参数不能用作参数值”。换句话说,dapper 不知道如何处理一个 SqlGeometry 对象作为参数。
c# - Dapper 多选:嵌套类主键不映射,除非使用“AS”
我有两节课:
当我然后像这样运行查询时:
结果将是 Foo 和 Bar 上的所有属性都将映射,但 Bar.BarId 除外。在对照我的 Bar 类检查数据库中的列名和类型后,我仍然找不到任何差异。
我偶然发现的一件奇怪的事情是,如果我写:
Bar.BarId 实际上按预期映射,我是否误解了如何使用 Dapper 或者这是一个错误?
c# - 使用 Dapper.net 的多映射查询的意外行为
我才刚刚开始查看 Dapper.net,并且刚刚尝试了一些不同的查询,其中一个查询产生了我没想到的奇怪结果。
我有 2 个表 - Photos
& PhotoCategories
,其中与CategoryID
照片表
照片类别表
我的 2 节课:
我想使用多重映射来返回 的实例Photo
,并带有相关的填充实例PhotoCategory
。
执行此操作时,并非所有属性都被填充(尽管 DB 表和我的对象之间的名称相同。
我注意到如果我don't
“选择 p.* 等” 在我的SQL
, 而不是。
我明确说明了这些字段。
我想EXCLUDING
p.CategoryId
从查询中返回,然后所有内容都会被填充(显然 CategoryId 与我已从 select 语句中排除的 Photo 对象除外)。
但我希望能够在查询中包含该字段,并使其以及在 中查询的所有其他字段SQL
得到填充。
我可以CategoryId
从我的班级中排除该属性,并在需要 ID 时Photo
始终使用。Photo.PhotoCategory.CategoryId
但在某些情况下,当我获得 Photo 对象的实例时,我可能不想填充该PhotoCategory
对象。
有谁知道为什么会发生上述行为?这对 Dapper 来说正常吗?
c# - 使用 DynamicParameters 的类似 Dapper 的运算符
这有效:
这会抛出“不存在从对象类型 System.Int32[] 到已知托管提供程序本机类型的映射。”:
有任何想法吗?
.net - Dapper 将 MySql BIT(1) 数据类型映射到 ulong 而不是布尔值
请问有没有人遇到过 Dapper 和 MySQL 的上述情况。在 MySQL (5.1) 中的所有表中,数据类型为 BIT(1) 或 BIT,Dapper 仅返回 ulong (UInt64) 之类的字段。我正在使用 MySql.Data.MySqlClient 并且我对 EF 没有这样的问题,这是我试图转换的。
谢谢你的帮助。
c# - 如何使用 Dapper-dot-net 从单个 SP 映射多个记录
我想在执行单个存储过程将返回 50 个多个单独选择的情况下使用 Dapper,单个结果集都不会很宽,最多可能有 20 或 30 列。下面的代码来自 Dapper Tests,我想知道这个例子是否是一个很好的原型。
谢谢你,斯蒂芬
编辑
这是基于 Marcs 答案的示例。
.net - 使用 dapper 插入一对多实体
我有以下两个类和相应的数据库表。我正在尝试插入完整的对象图(有多个课程的学生)。我正在寻找一个关于如何使用 Dapper 来做到这一点的例子。Id 是自动递增的身份字段。
班级
桌子
学生
ID [int] (pk)
姓名 [varchar(50)]
StudentCourse
StudentId [int] (fk)
CourseId [int] (fk)
课程
ID [int] (fk)
名称 [varchar(50)]
c# - Dapper 模型映射
我一直在和Dapper一起玩,我有一个问题。有没有办法让我能够在我的 POCO 类中拥有枚举类型属性并使用 Dapper?似乎每次我添加一个 Enumerator 类型的属性时,都会出现以下异常:
System.NotSupportedException:dapper 不支持类型:*my_enum_type*
我在这里错过了什么吗?是否有一个属性可以附加到这些属性以指定它们中的哪些映射到数据库表列?
postgresql - PostgreSQL,布尔类型存储值作为“T”和“F”破坏ORM的问题
如果我在 Postgres 表中定义布尔数据类型并从中进行查询,则布尔列的结果将返回为“t”或“f”。
我使用 NPGSQL 作为我的驱动程序,使用 Dapper 作为 ORM。这会导致问题,因为 Dapper 无法将“t”或“f”转换为布尔值,并且所有布尔值最终都为 False。
有没有办法用 Postgres 改变这种行为,或者我是否需要使用字符数据类型来解决它?