Iva*_*ono 2 c# sql-server dapper
我正在使用Dapper的Query <>来搜索许多记录:
public class Product
{
public int Id {get; set}
public string Name {get; set}
public int CategoryId {get; set}
]
public IEnumerable<Product> GetProducts(int categoryId)
{
var connection = DataContext.Database.Connection;
var sql = "SELECT * FROM products WHERE category_id = @categoryId";
var result = connection.Query<Product>(sql, new { categoryId });
return result;
}
Run Code Online (Sandbox Code Playgroud)
查询本身返回请求的记录,但列表中的每个对象都有空字段.
那么如何将列映射到实体的属性?
我不想在sql语句中添加列别名.装饰实体的属性也不是一种选择,因为实体是由EF设计者生成的.
那么你的Product类必须定义,以匹配从查询返回的结果.所以你能做的是 -
public IEnumerable<Product> GetProducts(int categoryId)
{
var connection = DataContext.Database.Connection;
var sql = "SELECT * FROM products WHERE category_id = @categoryId";
var result = connection.Query<Product>(sql, new { categoryId }).Select(p => new Product {
Id = (int)p.ProductId,
Name = (string)p.ProductName,
CategoryId = (int)p.ProductCategoryId
});
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3546 次 |
| 最近记录: |