Entity Framework Core 使用 SQL 查询并聚合转换为 DTO
可以使用以下步骤来使用 Entity Framework Core 执行 SQL 查询并将其转换为指定的 DTO:
-
创建一个 DTO 类,该类应包含您要从查询中检索的所有属性。
-
在 DbContext 中创建一个 DbSet,该 DbSet 应该与您要查询的表对应。
-
创建一个方法,该方法应该接受一个 SQL 查询字符串,并使用 DbSet 执行该查询。
-
将查询结果转换为 DTO 对象,并返回它们。
以下是一个示例代码:
public class MyDbContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
public List<MyDto> ExecuteSqlQuery(string sqlQuery)
{
var result = MyEntities.FromSqlRaw(sqlQuery).ToList();
return result.Select(x => new MyDto
{
// map properties from MyEntity to MyDto
}).ToList();
}
}
public class MyEntity
{
public int Id { get; set; }
public string Name { get; set; }
public int Value { get; set; }
}
public class MyDto
{
public string Name { get; set; }
public int TotalValue { get; set; }
}
// usage
var dbContext = new MyDbContext();
var sqlQuery = 'SELECT Name, SUM(Value) as TotalValue FROM MyEntities GROUP BY Name';
var result = dbContext.ExecuteSqlQuery(sqlQuery);
在这个例子中,我们有一个 MyEntity 类,它有一个 Id、一个 Name 和一个 Value 属性。我们还有一个 MyDto 类,它有一个 Name 和一个 TotalValue 属性。我们使用 DbContext 中的 MyEntities DbSet 执行一个 SQL 查询,该查询计算每个 Name 值的 Value 总和。我们将结果转换为 MyDto 对象并返回它们。
原文地址: https://www.cveoy.top/t/topic/j0Nf 著作权归作者所有。请勿转载和采集!