问题标签 [multi-mapping]
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 中工作
和 Dapper 一起玩,到目前为止我对结果非常满意 - 很有趣!
但是现在,我的下一个场景是从两个表中读取数据——一个表Student
和一个Address
表。
Student
表有一个主键StudentID (INT IDENTITY)
,Address
有一个AddressID (INT IDENTITY)
。Student
还有一个称为AddressID
链接到Address
表的 FK。
我的想法是创建两个类,每个表一个,具有我感兴趣的属性。此外,我在 C# 中的类中放置了一个类型的PrimaryAddress
属性。Address
Student
然后,我尝试在单个查询中同时检索学生和地址数据——我模仿了Github 页面上给出的示例:
在这里,aPost
和 aUser
被检索,并且帖子的所有者设置为用户 - 返回的类型是 a Post
- 对吗?
因此,在我的代码中,我为通用Query
扩展方法定义了两个参数——aStudent
作为第一个应该返回的参数,anAddress
作为第二个参数,它将存储到学生实例中:
问题是 - 我在 Visual Studio 中遇到错误:
使用通用方法 'Dapper.SqlMapper.Query(System.Data.IDbConnection, string, System.Func, dynamic, System.Data.IDbTransaction, bool, string, int?, System.Data.CommandType?)' 需要 6 个类型参数
我真的不明白为什么 Dapper 坚持使用这个带有 6 个类型参数的重载......
dapper - 多映射器创建对象层次结构
我一直在玩这个,因为它看起来很像记录的帖子/用户示例,但它略有不同并且不适合我。
假设以下简化设置(一个联系人有多个电话号码):
我很想得到一个返回带有多个电话对象的联系人的东西。这样,如果我有 2 个联系人,每个联系人有 2 部电话,我的 SQL 将返回这些联系人的连接作为结果集,总共 4 行。然后 Dapper 会弹出 2 个联系人对象,每个对象有两部手机。
这是存储过程中的SQL:
我尝试了这个,但最终得到了 4 个元组(这没关系,但不是我希望的......这只是意味着我仍然必须重新规范化结果):
当我尝试另一种方法(如下)时,出现“无法将'System.Int32'类型的对象转换为'System.Collections.Generic.IEnumerable`1 [Phone]'”的异常。
我只是做错了什么吗?它看起来就像帖子/所有者的例子,除了我是从父母到孩子而不是孩子到父母。
提前致谢
.net - 嵌套多重映射的 Dapper 语法
这是我的存储过程,它从数据库中填充数据。
我试图在简洁的查询下面写,但得到一个异常
我尝试使用以下概念,但它只返回单个对象。我需要一份人员名单。
提前致谢。
c# - Dapper.NET 多映射 TSecond Deserializer 为空
我正在尝试使用 Dapper 执行非常标准的多映射查询,但出现以下错误。当这似乎有效时,我偶尔也会遇到另一个错误,但我目前无法重现它。如果/当第一个问题得到解决,我会将其附加到这篇文章中。
下面是查询代码:
在 Dapper.cs 第 498 行:
info.OtherDeserializers 为 null,这会导致 NullReferenceException。
这是存储过程的核心:
我对小巧玲珑的代码进行了广泛的研究,但除了 TFirst 的反序列化器不为空,但 TSecond 的反序列化器为空之外,我找不到任何看起来不合适的东西。当它创建 TSecond 的反序列化器将其保留为空时会不会有问题?
以下是类型:
c++ - 如何迭代地图的 C++ 地图
我有一张地图
迭代它:
导致错误:
/blockquote>如何迭代地图的地图?
c# - 使用 Dapper 从 T-SQL 视图填充对象
我正在尝试使用 Dapper 进行数据访问(在 ASP.NET MVC3 FWIW 中)。我有一个 T-SQL 视图(在 SQL Server 中),它是这样的:
非常简单。本质上是一个员工列表,每个员工都有一个公司。
我遇到的问题是我正在尝试将此查询的输出映射到我的 POCO,但是因为视图中的每个字段都必须是唯一的(即 CompanyName 而不是 tblStaff 中已经存在的 Name)映射到 POCO不工作。
这是代码:
有什么建议我可以如何解决这个难题?我愿意改变我的观点,因为现在我对如何进步感到困惑。
c# - 将 Dapper 查询映射到对象集合(它本身有几个集合)
我想执行单个查询(或具有多个结果集的存储过程)。我知道如何使用 Dapper 进行多重映射,但我无法排序如何将两个集合映射到同一个父级。基本上,给定这个对象定义......
我希望能够运行以某种方式产生的 Dapper 查询:
java - 如何实现这个地图> 结构
我有如下数据:
(上面的每一行数据都是一个对象,字段为“key”和“value”,都在一个 List 中List<DataObject>
)
我想将数据构建为Map<String, List<String>>
如下所示:
如何Map
从数据对象中实现上述结构?
** * ***除了* ** * **
我更感兴趣的是使用纯 JDK 提供的类或接口来实现结果,而不是使用外部库。有什么帮助吗?
dapper - Dapper 可以在使用连接表时加载 Multi-Mapping 结果吗?
我有一个包含许多连接对象的应用程序对象。这在 .Net 世界中很棒,但不幸的是,连接是通过具有复合键的连接表来管理的。是否可以使用多映射方法在 dapper 中进行映射?
现在我只使用两个单独的 sql 语句,但它并不适合我(来自 EF 方面)。这是我尝试过但无法开始工作的一些代码...
我不断收到的错误是“使用 splitOn”错误,但我确信这只是冰山一角。如果有人有任何想法,我会全力以赴。
dapper - Dapper > 多重映射无法正确地将位映射到布尔值
我有以下代码:
两个“connection.Query”执行相同的 SQL。不同之处在于第一个返回一个 DapperRows 列表,而第二个是一个通用的 Query<> 自动映射实体。
现在,在第一个 .Query() (返回 DapperRows 列表)中,布尔属性(dB 中的位)“FillImmediately”和“FillCompletely”在类中是真还是假,具体取决于它们是“1”还是“0” “在数据库中。所以效果很好。
但是,当使用 .Query<>() 时,这两个属性始终为“假”。似乎 .Query<>() 无法正确地将位映射到布尔值。
截至今天,我正在使用最新版本的 Dapper (1.42) 和 SQL Server 2008
想法?