EF CORE 如何直接执行SQL并转化为指定的对象
EF Core提供了两种方式来直接执行SQL并转化为指定的对象:
- Raw SQL Queries
可以使用DbContext的FromSqlRaw或FromSqlInterpolated方法来执行原始SQL查询,并将结果转化为指定的对象。例如:
var products = context.Products.FromSqlRaw("SELECT * FROM Products WHERE Price > {0}", 10).ToList();
这里的Products是指定的对象,FromSqlRaw方法接受一个原始SQL查询字符串和可选的参数,它将返回一个IQueryable对象,可以使用ToList或其他LINQ方法来查询结果。
- Query Types
Query Types是EF Core 2.1引入的一个新特性,它允许开发人员定义一个简单的POCO类来表示查询结果,并将其与一个原始SQL查询关联起来。例如:
public class ProductSummary
{
public string Name { get; set; }
public decimal Price { get; set; }
}
public class MyContext : DbContext
{
public DbSet<ProductSummary> ProductSummaries { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Query<ProductSummary>().ToView("ProductSummaries");
}
}
var summaries = context.ProductSummaries.FromSql("SELECT Name, Price FROM ProductSummaries").ToList();
这里的ProductSummary是一个简单的POCO类,它表示查询结果。在MyContext中,我们定义了一个DbSet
原文地址: http://www.cveoy.top/t/topic/czLb 著作权归作者所有。请勿转载和采集!