介绍#
Entity Framework 5.0 から ToQueryString()
が提供されています。これはプロバイダー固有の SQL を返し、データベースサーバーに接続する必要もありません。これは Entity Framework の ToTraceString()
に似ています。
示例#
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
var services = new ServiceCollection()
.AddDbContext<MyDbContext>(options => options.UseSqlite());
var dbContext = services
.BuildServiceProvider()
.CreateScope()
.ServiceProvider
.GetRequiredService<MyDbContext>();
var namePrefix = "bob";
var query = dbContext.Customers.Where(x => x.Name.StartsWith(namePrefix));
var sql = query.ToQueryString();
Console.WriteLine(sql);
Console.ReadKey();
record Customer(int Id, string Name);
class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { }
public DbSet<Customer> Customers { get; set; }
}
出力結果: