Dapper-dot-net "без названия столбца" - PullRequest
3 голосов
/ 07 сентября 2011

У меня есть набор результатов, который может выглядеть следующим образом:

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

У меня 2 вопроса:

Первый: Как использовать dapper для столбца без имени?

Второе: Я хочу иметь отношения родитель-потомок, чтобы я получал 3 объекта со списком чужих идентификаторов, например:

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

1 Ответ

4 голосов
/ 07 сентября 2011

Ну, неназванные столбцы не поддерживаются 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 для создания иерархии объектов

...