Dapper-dot-net "no column name"と非常によく似た質問がありますが、必要な場所に答えがありません。
Web インターフェイスを作成し、dapper を使用してクライアントの ERP システムからストアド プロシージャからデータを取得しています。SP は、列名なしで 4 列のデータを返します。そうは言っても、SPはロックされており、変更できません。サムが提案したように、クエリで一時テーブルを使用してこれを回避しようとしました。
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
");
ただし、元の SP にもログ用の挿入が含まれていることがわかりました。そのため、SQL では一時テーブルに SP を挿入できません。
次のサポートを追加することについて言及されています。
class Foo { [ColumnNumber(1)] public string Name {get;set;} }
これどうやってするの?列名を必要とせず、列番号でマップできるように Dapper ソースを変更するために、誰かが私を正しい方向に向けることができますか?