【发布时间】:2014-10-30 17:35:38
【问题描述】:
我正在使用 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;
}
查询本身返回请求的记录,但列表中的每个对象都有空字段。
那么如何将列映射到实体的属性?
我不想在 sql 语句中添加列别名。装饰实体的属性也不是一种选择,因为实体是由 EF 设计器生成的。
【问题讨论】:
-
您可以使用 DapperExtensions 包并通过从 ClassMapper
或 AutoMapper 继承来为您的类创建自定义映射器。有关更多信息,请参阅this。没有时间给出完整的答案。我相信您也需要从使用 Query 方法更改为使用 Get 方法。
标签: c# sql-server dapper