Dapper-dot-net "no column name"

dapper

Вопрос

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

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
}

Принятый ответ

Ну, неименованные столбцы не поддерживаются 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
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему