EF Core 提供了 FromSqlRawFromSqlInterpolated 方法,可以直接执行 SQL 并将结果转化为指定的泛型对象。

使用 FromSqlRaw 方法:

var result = dbContext.MyEntity.FromSqlRaw("SELECT * FROM MyTable WHERE Id = {0}", id).ToList();

使用 FromSqlInterpolated 方法:

var result = dbContext.MyEntity.FromSqlInterpolated($"SELECT * FROM MyTable WHERE Id = {id}").ToList();

其中,MyEntity 是要转化为的泛型对象,id 是 SQL 中的参数。在 SQL 中使用参数可以防止 SQL 注入攻击。

需要注意的是,使用这两个方法执行 SQL 时,EF Core 不会跟踪返回的对象,因此在修改对象时需要手动更新数据库。


原文地址: http://www.cveoy.top/t/topic/czLl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录