4

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

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

我有两个问题:

第一:如何在没有名称的列中使用 dapper?

第二:我想有一个父子关系,这样我得到3个对象,每个对象都有一个anotherID的列表,例如:

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

1 回答 1

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

于 2011-09-07T06:17:02.123 回答