мне удалось получить что-то и работает сегодня, как небольшой проект песочница/POC, но, казалось, поднять мою голову на одном вопросе ...Dapper. Карта SQL Column с пробелами в именах столбцов
Вопрос:
Есть ли способ получить dapper для сопоставления имен столбцов SQL с пробелами в них.
У меня есть что-то в этом роде, так как мой результирующий набор.
Например:
SELECT 001 AS [Col 1],
901 AS [Col 2],
00454345345345435349 AS [Col 3],
03453453453454353458 AS [Col 4]
FROM [Some Schema].[Some Table]
И мой класс будет выглядеть следующим образом
public class ClassA
{
public string Col1 { get; set; }
public string Col2 { get; set; }
///... etc
}
Моя реализация выглядит, как это в настоящее время
public Tuple<IList<TClass>, IList<TClass2>> QueryMultiple<TClass, TClass2>(object parameters)
{
List<TClass> output1;
List<TClass2> output2;
using (var data = this.Connection.QueryMultiple(this.GlobalParameter.RpcProcedureName, parameters, CommandType.StoredProcedure))
{
output1 = data.Read<TClass>().ToList();
output2 = data.Read<TClass2>().ToList();
}
var result = new Tuple<IList<TClass>, IList<TClass2>>(output1, output2);
return result;
}
Примечание: SQL, не могут быть изменены каким-либо образом.
В настоящее время я просматриваю код dapper, и моим единственным предсказуемым решением является добавление некоторого кода, чтобы «уговорить» сравнение столбцов, но пока не так много удачи.
Я видел в StackOverflow, что есть такие вещи, как расширения dapper, но я надеюсь, что смогу это сделать без добавления расширения, если нет. Я возьму все, что быстрее реализовать.
У меня есть такая же потребность. Я обошел его, добавив псевдонимы ко всем столбцам в моем запросе, но это невероятно утомительно. Нижеприведенные решения могут работать, но было бы неплохо, если бы Dapper мог просто добавить свойство/параметр, чтобы игнорировать пробелы, а не всем, кто должен был добавить клиентов.Это юридические имена, и они должны иметь возможность сопоставлять их с небольшими усилиями. –