entity-framework-core - 如何在 .NET Core 3.1 控制台应用程序中使用 Entity Framework Core 调用存储过程?
问题描述
我有一个 C# .NET Core 3.1 控制台应用程序。我需要通过存储过程查询 SQL 数据库以进行数据检索。
我一直在尝试使用 NuGet 将 Microsoft.EntityFrameworkCore 包安装到项目中。
我收到错误消息说 Entity Framework Core 5.0 与 .Net Core 3.1 不兼容。我尝试过早期版本的 Entity Framework Core,但仍然出现兼容性错误。
我应该尝试将 Entity Framework Core 与 .NET Core 一起使用吗?有没有办法解决这些兼容性问题?
如何从 EF Core 调用 SQL 存储过程?
以下是我尝试通过 NuGet 将 EntityFrameworkCore.SQL 包添加到我的解决方案时看到的错误:
Error Package restore failed. Rolling back package changes for 'Foo.WebAPI'.
Error NU1202 Package Microsoft.Extensions.DependencyInjection 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.Extensions.DependencyInjection 5.0.0 does not support any target frameworks.
Error NU1202 Package Microsoft.IdentityModel.Tokens 5.6.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.IdentityModel.Tokens 5.6.0 does not support any target frameworks.
Error NU1202 Package System.Net.NameResolution 4.3.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package System.Net.NameResolution 4.3.0 supports: - monoandroid10 (MonoAndroid,Version=v1.0) - monotouch10 (MonoTouch,Version=v1.0) - xamarinios10 (Xamarin.iOS,Version=v1.0) - xamarinmac20 (Xamarin.Mac,Version=v2.0) - xamarintvos10 (Xamarin.TVOS,Version=v1.0) - xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0)
解决方案
希望您能够解决 .net core 3.1->5.0 升级时遇到的安装问题。一种方法可能是重新开始使用针对核心 5.0 的新 .net 核心控制台应用程序,并将所有业务逻辑等移动到新的控制台应用程序中。如果您确实解决了升级问题,这里是您上述问题的答案。
var user = "johndoe";
var blogs = context.Blogs
.FromSqlRaw("EXECUTE dbo.GetMostPopularBlogsForUser {0}", user)
.ToList();
来自 Microsoft Docs “原始查询” https://docs.microsoft.com/en-us/ef/core/querying/raw-sql
就我个人而言,我尝试避免在代码优先 EF 中使用 SP,就像瘟疫一样,但在极少数情况下 LINQ 和 EF 无法处理这项工作,你必须转到 SP。
推荐阅读
- ios - 如何将单个 Azure 通知中心或单个 p12 文件用于多个 Flutter 应用程序?
- cross-compiling - 你能帮我用 risc-v 的 QEMU 解决这个交叉编译错误吗?
- php - 从 PHP CLI 导出环境变量
- c# - c# interop excel - 将过滤后的范围复制到数组/列表
- components - 解释 FB Prophet plot_components
- javascript - 无法在本机反应中访问关联类的功能
- django - Django 导航栏链接在新选项卡中打开
- postgresql - PostgresQL 查询使用向后索引扫描而不是仅索引扫描
- django - 作为访客用户的 django 添加到购物车
- json - 带有特殊字符的 jsonfilter