【发布时间】:2017-02-08 08:09:24
【问题描述】:
我有这个 working sample 使用 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 对象,该对象与同一张表有关,我不想要另一个选择。
【问题讨论】: