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合法嗎? 是的,了解原因