У меня есть этот рабочегообразец запроса с использованием щеголеватого (в действительности я использую реальную таблицу):Может ли Dapper вернуть отображаемый объект и другие не отображаемые значения?
async void Main()
{
var sql = @"SELECT PersonId = 1,
FirstName = 'john',
LastName = 'Lennon'";
using (var conn = new SqlConnection(@"Data Source=....;Initial Catalog=W...."))
{
var person = await conn.QueryAsync<Person>(sql);
person.Dump();
}
}
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Результат:
Так картирование работает, как ожидалось , Но иногда у меня есть вопросы, которые возвращает другое значение, как:
SELECT PersonId = 1,
FirstName = 'john',
LastName = 'Lennon' ,
cnt=(SELECT COUNT(1) FROM INFORMATION_SCHEMA.COLUMNS) //example
Что совершенно законно:
Вопрос:
Можно ли вернуть Person
объект и другие несвязанные значения (в том же select
)
Что-то вроде:
await conn.QueryAsync<Person,int>(sql)
Реальный пример:
SELECT [AddressId]
,[PersonName]
,[Street]
,[Address_2]
,[House] ,
cnt=(COUNT(1) OVER (PARTITION BY house) )
FROM [WebERP].[dbo].[App_Address]
Так я вернуть Address
объект со счетом, рассматривающей в той же таблице, и я не хочу другого выбора.
MMM ... смысл. Поэтому я могу создать производный тип Person с именем 'PersonCounted', который будет иметь эту дополнительную опору. –
определенно, просто измените имя в sql-коде «cnt as PersonCount», и он выполнит эту работу или просто PersonCount = whateevr. –