问题标签 [entity-framework-core-3.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1115 浏览

c# - 脚手架现有数据库时 ASP.NET Core 3.0 错误“无法转换类型的对象”

我正在使用 Visual Studio 2019。我的应用程序在 ASP.NET Core 3.0 中。

我正在尝试使用带有以下命令的包管理器控制台从 LocalDb 构建现有数据库:

过了一会儿,我收到了这个错误:

无法将类型为“Microsoft.EntityFrameworkCore.Diagnostics.RelationalLoggingDefinitions”的对象转换为类型“Microsoft.EntityFrameworkCore.SqlServer.Diagnostics.Internal.SqlServerLoggingDefinitions”。

是什么原因造成的,我该如何解决?

0 投票
1 回答
2993 浏览

c# - 在 EF Core 3 中播种相关数据,出现错误:对象引用未设置为对象的实例

我遵循了https://docs.microsoft.com/en-us/ef/core/modeling/data-seeding上解释的数据播种过程。

使用“模型种子数据”方法播种相关数据如下:

运行命令时出现以下错误:dotnet ef migrations add SeedDatabase

当我注释掉“CaseTypeId = 1”时,如下所示。Cases 表中插入的数据和 CaseTypeId 字段的值为“null”

问题在于案例实体中的外键属性“CaseTypeId”。

那么我在这里做错了什么?

0 投票
2 回答
939 浏览

c# - EF Core 3.0 可为空的导航属性

因此 EF Core 预览版 7 发布了,我决定将它与 C# 8 预览版和 .NET Core 3.0 预览版 7 一起使用。假设我有一个代表多对多关系的类:

我将它们映射为:

现在,因为我可能不想包含关系的一个或两个类,A并且B可以为空。因此,它们应该可以为空。

所以我将类重写为:

但是现在模型构建不起作用,因为这些行:

raise CS8602 - Dereference of a possibly null referenceon the a.Relationsnad b.Relationsaccess,我将其设置为在解决方案范围内被视为错误,因为这似乎是一件理智的事情。

请注意,从另一侧构建模型,因此HasManyA和上进行配置B将引发CS8603 - Possible null reference return

我能够通过去默默地解决这个问题,#pragma warning disable CS8602但这显然是一种解决方法。在我看来,它就像 EF Core 中的一种气味,这种用法正确且永远不会引发任何问题似乎是合理的null。但是,我无法在 EF Core 的 github 上找到这样的问题。

所以问题是,在当前的 EF Core 3.0.0 Preview 7 中,有没有一种方法可以在不发出模型构建警告的情况下拥有可为空的导航属性?如果不是,这确实是一个问题,是否已知并且我在 EF Core 的 github 上错过了它,或者我应该在那里提出它?

0 投票
1 回答
4848 浏览

mysql - 使用 EFcore 3.0 配置 MySQL

我刚开始使用Dotnet core 3.0 的SPA 的身份验证和授权

dotnet new angular -o <output_directory_name> -au Individual

它创建了一个新项目,其中 Angular 作为客户端应用程序,ASP.net 核心作为后端。现在我想在这个模板中使用 MySQL。

我已经尝试为此使用两个提供程序

  1. MySql.Data.EntityFrameworkCore
  2. Pomelo.EntityFrameworkCore.MySql

但是 Entityframework core 3.0 不支持它们,并要求我降级到 Entityframework core 2.2。当我降级到 Entityframework 核心 2.2 时,另一个名为Microsoft.AspNetCore.ApiAuthorization.IdentityServer的包开始中断,因为它需要 Entityframework 核心版本 3.0 及更高版本。

有人可以告诉我如何为 MySQL 的 SPA 设置此身份验证和授权模板吗?

0 投票
1 回答
1211 浏览

c# - Linq 选择模型并设置属性

在 .NET Core 2.X 中,我可以使用以下代码:

但是 .net core 3.X 中的相同代码会导致此错误:

System.InvalidOperationException:从“VisitMemberInit”调用时,重写“System.Linq.Expressions.NewExpression”类型的节点必须返回相同类型的非空值。或者,覆盖“VisitMemberInit”并将其更改为不访问这种类型的孩子。

我真的可以按照上面的方式进行选择,因为每个模型都对某些属性进行了一些修改,并且每个模型都在其他地方单独使用。

我也试图避免 a foreach,因为它似乎效率低下。

我尝试将需要设置的属性传递到模型中,然后像这样在模型中设置它们。发生同样的错误。

List<SpecialTaskVm>我希望任务列表以withClient和setCarer的形式返回。Carer2

0 投票
7 回答
50842 浏览

c# - 从 dotnet Core 2.2.6 更改为 3.0.0 后出现 EF Linq 错误

我正在尝试将解决方案升级到新的 Core Framework 3.0.0。现在我有一个我不明白的小问题。

看,这种方法在 2.2.6 中没有问题:

现在在 3.0.0 中,我收到一个 Linq 错误:

InvalidOperationException:LINQ 表达式 'Where(source: Where(source: DbSet, predicate: (a) => (int)a.Gender != 0), predicate: (a) => a.BirthDate.GetValueOrDefault().Month == DateTime.Now.Month)' 无法翻译。以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估

当我禁用此行时:

错误消失了,但我当然会得到所有用户。而且我在这个查询中看不到错误。这可能是 EF Core 3.0.0 中的错误吗?

0 投票
1 回答
4384 浏览

entity-framework - 升级到 Visual Studio 16.3.0 后,dotnet ef 命令不再有效

这首先发生在家里,所以我想这可能是我家里台式电脑的问题。但是现在我回来工作了,我尝试升级并得到了同样的东西。

升级前的截图

dotnet ef 命令

升级 Visual Studio 后的屏幕截图

dotnet ef 命令

我得到的错误是:

由于找不到指定的命令或文件,无法执行。

可能的原因包括:

  • 您拼错了内置的 dotnet 命令。
  • 您打算执行 .NET Core 程序,但 dotnet-ef 不存在。
  • 您打算运行一个全局工具,但在 PATH 上找不到具有此名称的带 dotnet 前缀的可执行文件。

关于为什么会发生这种情况的任何想法?以及如何取回dotnet ef命令。我的意思是必须在$PATH以前,否则它以前不会起作用。

0 投票
1 回答
168 浏览

c# - ef core 3:如何迁移 Microsoft.EntityFrameworkCore.Design.Internal.CSharpHelper?

Microsoft.EntityFrameworkCore.Design.Internal.CSharpHelperEF Core 3 中不存在。

我使用它来支持 EF Core 迁移的 sql server 约束安装/卸载。

这在 EF Core 3 中应该是什么样子?

0 投票
6 回答
42606 浏览

c# - Client side GroupBy is not supported

I have the following Entity Framework Core 3.0 query:

I get the following error:

To run the query on the client, or part of it, I would do the following:

Now it works.

Why am I getting this error if I am not running the query on the client?

0 投票
1 回答
1504 浏览

entity-framework - AsNoTracking 与 HasNoKey

我并不完全清楚在具有密钥的实体上使用 AsNoTracking() 和使用 HasNoKey() 之间有什么区别。据我了解,当使用 AsNoTracking() 时,即使 changetracker 不跟踪结果对象的更改,对象仍保留在 DbContext 的内存中。如果您尝试使用与内存中已存在的键相同的键附加新对象,则会出现错误。(如我错了请纠正我)。

如果您使用 HasNoKey(以前的 DbQuery<>),那么行为是否相同?