我有一個可能如下所示的結果集:
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來創建對象層次結構