记一下EFCore执行SQL语句的方法
执行的方法都在DBContext里
比如写一个方法 ,继承 DBContext
public class LogDBContext : DbContext
{
public DbSet<LogModel> LogModels { get; set; }
}
然后下面是使用方法
public async Task<bool> Add(LogModel model)
{
using (LogDBContext db = new LogDBContext())
{
db.Database.ExecuteSqlRaw("insert into tableA (...) values(..)", null);
return await db.SaveChangesAsync() > 0;
}
}
db.Database的这个 Database 是DBContext里面的对象
提供的方法有:
ExecuteSqlRaw
ExecuteSqlRawAsync
ExecuteSqlInterpolated
ExecuteSqlInterpolatedAsync
执行增删改方便,如果是查询呢?
public async Task<List<LogModel>> FindAll()
{
using (LogDBContext db = new LogDBContext())
{
var data = db.LogModels.FromSqlRaw("select ... from tableA", null);
return await data.ToListAsync();
}
}

浙公网安备 33010602011771号