Dapper-dot-net“无列名”

dapper

我有一个可能如下所示的结果集:

ID    (no column name)  anotherID
----  ----------------  ----------
1        super            3
1        super            4
3        duper            6
4        really           7
4        really           8

我有两个问题:

第一:如何将dapper与没有名称的列一起使用?

第二:我希望有一个父子关系,这样我得到3个对象,每个对象都带有另一个ID的列表,例如:

public class MyObject
{
   public int ID
   public string Name
   public int[] Children
}

一般承认的答案

好吧,dapper不支持未命名的列。我从来没有真正看到他们的理由。

我想我们可以建立支持:

class Foo { [ColumnNumber(1)] public string Name {get;set;} }

问题是它引入了一种非常脆弱的查询方法,我非常不喜欢,将指令传递给Query就像笨重一样。

但是,如果您乐意改变获取结果的方式,可以解决这个问题。

var grid = QueryMultiple(@"set nocount on 
declare @t table(Id int, Name nvarchar(max), AnotherId int)

insert @t
exec proc

set nocount off 
select Id, Name from @t
select Id, AnotherId from @t
");

然后使用此处的技术进行多重映射: Multi-Mapper来创建对象层次结构



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因