c# - 如何在 EFCore 中使用 EF .SqlQuery 表达式?
问题描述
我正在重构代码,我有这个问题。
public class MovimentoManualListRepository : RepositoryBase<MovimentoManualList>, IMovimentoManualListRepository
{
ConsultarContext _context;
public MovimentoManualListRepository(ConsultarContext context) : base(context)
{
_context = context;
}
public List<MovimentoManualList> Listar()
{
return _context.Database
.SqlQuery<MovimentoManualList>("ListarMovimentacao")
.ToList();
}
}
我收到一个错误:
严重性代码描述项目文件行抑制状态错误 CS1061“DatabaseFacade”不包含“SqlQuery”的定义,并且找不到接受“DatabaseFacade”类型的第一个参数的可访问扩展方法“SqlQuery”(您是否缺少 using 指令或装配参考?)
解决方案
你是说FromSqlRaw
.?
基本的原始 SQL 查询
您可以使用
FromSqlRaw
扩展方法开始基于原始 SQL 查询的 LINQ 查询。FromSqlRaw
只能用于查询根,即直接在DbSet<>
.var blogs = context.Blogs .FromSqlRaw("SELECT * FROM dbo.Blogs") .ToList();
下面执行一个存储过程
var blogs = context.Blogs
.FromSqlRaw("EXECUTE dbo.GetMostPopularBlogs")
.ToList();
请注意:
- 它可以与 Linq 查询混合并匹配
- 有限制
请参阅原始 SQL 查询。
推荐阅读
- gradle - 具有隐式任务依赖关系的 Gradle 链复制和输出
- kubernetes - 卷的 MountVolume.SetUp 失败“
-token-m4rtn":无法同步秘密缓存:等待条件超时 - sql - SQL:执行欠采样以选择多数类的子集
- amazon-web-services - S3存储桶项目中的日期和上次修改有什么区别?
- php - Wordpress 上传时出错。请稍后再试(图片上传)
- mongodb - 如何在主机系统的 Docker-MongoDB 中的 bash 命令中执行 bash?
- redis - Redis - 在写入时从密钥中读取旧数据
- aws-lambda - AWS Lambda 返回过滤的 dynamoDB 扫描的空结果
- path - 如何调试“错误ASPCONFIG:完全限定后路径太长。”?
- c# - 在将 web api 部署到天蓝色之后,从 api 到类库的每个调用都失败了