我的结果集可能如下所示:
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
}
答案 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