ExecuteQuery 执行查询并返回实体列表
static void Main(string[] args)
{
using (var dbContext = new DataClasses1DataContext())
{
var total = dbContext.ExecuteQuery<int>("select count(1) from [user]").FirstOrDefault();//4
var users = dbContext.ExecuteQuery<User>("select * from [user]").ToList();
}
}Code language: JavaScript (javascript)
说明:
| 调用 | 返回类型 | 说明 |
|---|---|---|
ExecuteQuery<int> | int | 查询结果映射为标量值,FirstOrDefault 取第一行 |
ExecuteQuery<User> | List<User> | 查询结果按列名映射为 User 实体列表 |
执行位置: 直接发 SQL 到数据库,不经过 LINQ 查询翻译。列名和实体属性名匹配即可自动映射。
关键要点:
| 要点 | 说明 |
|---|---|
ExecuteQuery<T> | 返回 IEnumerable<T>,需 ToList/FirstOrDefault 物化 |
| 列名匹配 | SQL 列名和实体属性名一致时自动赋值 |
| 原生 SQL | 不走 LINQ 翻译,适合复杂查询或性能敏感场景 |
| 参数化 | 用 {0} 占位,如 ExecuteQuery<User>("select * from [user] where id={0}", 1) |
Previous: 分组后把字段收集到 List 中