Dapper-dot-net“无列名”

时间:2011-09-06 21:27:21

标签: 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
}

1 个答案:

答案 0 :(得分:4)

嗯,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 to create object hierarchy