Я извлекаю информацию из базы данных SQL Server, используя Dapper.POCO для рассматриваемой информации ниже.
public class Client
{
public string ShortName { get; set; }
public string ContactDetail { get; set; }
public string Street { get; set; }
public string District { get; set; }
public string Town { get; set; }
public string County { get; set; }
public string Postcode { get; set; }
}
Когда я извлекаю информацию для вышеуказанного объекта, используя запрос ниже, вся информация отображается правильно, кроме следующей строки max(case when cd.Type = 1 OR cd.Type = 2 then cd.Detail end) as 'ContactDetail'
Я считаю, что этоможет быть потому, что я не просто извлекаю данные из столбца таблицы, а вместо этого выполняю некоторую обработку с использованием предложения CASE заранее, и поэтому Dapper не может найти правильное место для сопоставления информации.
Я думал, включаяПредложение AS
поможет Dapper найти правильное сопоставление, но на самом деле это не сработает.
Как изменить запрос, чтобы Dapper мог правильно сопоставить данные ContactDetail?
select
tp.ShortName as 'ShortName',
max(case when cd.Type = 1 OR cd.Type = 2 then cd.Detail end) as 'ContactDetail',
tp.Street,
tp.District,
tp.Town,
tp.County,
tp.PostCode
... (rest of query snipped as unneeded)
Я знаю, что запрос работает правильно, так как я могу запустить его в SSMS, и он возвращает правильную информацию.