问题标签 [ef-core-5.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 回答
145 浏览

c# - 作为 EntityFramework Core 中的字段的接口

有没有办法将接口用作 EF Core 中的类的字段(CodeFirst,最后一个版本到第 5.0 天)?

0 投票
0 回答
64 浏览

c# - 无法在 EntityFrameworkCore 5.0.2 中添加迁移,未识别命令

(我在 Windows 7 x64 上使用 VS 2019)

我在 EntityFramework Core https://www.entityframeworktutorial.net/efcore/entity-framework-core-console-application.aspx上关注本教程

根据教程,我下载了 EntityFrameworkCore SQLServer 5.0.2.,创建了数据库上下文以及Student名称Course。接下来,它告诉我在 NuGet 控制台包管理器中输入以下命令:

这给了我一个错误:“名称'add-migration'未被识别为命令行开关、函数、脚本文件或可执行程序的名称。请检查名称拼写的有效性以及路径的有效性和存在性,然后重试”

在此处输入图像描述

本教程还提供了 dotnet CLI 的替代命令,但是当我尝试打开它时 VS 崩溃了。我不知道在哪里寻找问题的根源。

0 投票
1 回答
85 浏览

c# - 我可以使用 Fluent API 通过构造函数传递 HashSet 吗?

我有一个结构如下的域模型:

现在,我想使用 EF 的 Fluent API 来持久化它,但我不断收到这样的InvalidOperationException说法:

没有为实体类型“Foo”找到合适的构造函数。以下构造函数具有无法绑定到实体类型属性的参数:无法在“Foo(HashSet<int> intSet)”中绑定“intSet”。

我试过使用ModelBuilder下面显示的选项,不幸的是无济于事:

有没有任何实际的方法可以使这项工作?请注意,我绝对不想使用DataAnnotations.

0 投票
1 回答
333 浏览

c# - 使用新的 EF Core 5.0 将一对多迁移到多对多

我有一个 ASP.NET Core 5 项目(从 ASP.NET Core 3.1 迁移而来)。该项目使用 EF Core。

EF Core 5 内置了对多对多的支持。我首先从 3.1 迁移到 5.0 的主要原因。

现在我的项目具有一对多关系,我想将其转换为多对多。

这样的关系迁移可能吗?

当前代码:

在上面的代码中,您可以看到一条记录有零个、一个或多个文件。一个文件只有一个关联的记录。

我想更改此设置,以便可以将单个文件分配给多个记录(这样我可以减少重复文件并减少磁盘空间,通过增加缓存命中等来改善网络流量......)。

在文件类中,我是否只需删除这些代码行:

并用下面的这一行替换它?

我不想破坏和手动更改数千个文件记录关系......或破坏它们。

0 投票
1 回答
205 浏览

c# - 在 Entity Framework Core 中初始迁移后出现“没有这样的表”错误

(Win7 x64、Visual Studio 2019、Entity Framework Core/SQLite/Tools v.5.0.2)

我遵循这个

https://docs.microsoft.com/ru-ru/ef/core/get-started/overview/first-app?tabs=visual-studio

实体框架核心教程。我复制/粘贴了所有代码以确保并使用 Nuget 控制台应用初始迁移。控制台根据日志报迁移成功:

尽管创建的数据库文件的文件图标表明可能存在问题:

在此处输入图像描述

我尝试运行教程中的主要代码,但出现错误

没有这样的表:博客

代码:

我还尝试将异常生成行从db.Add(...)to更改为,db.Blogs.Add(...)但它会生成相同的异常。

0 投票
0 回答
88 浏览

c# - .Where on .Include 未反映在 where 子句中

也许这是设计使然,但我有一个奇怪的例子:

我知道查询中的第一个与会者有 2 CourseAttends。第一个带有状态attended,第二个带有cancelled

如果我执行 a ,foreach则查询返回一个CourseAttend. Attendee那挺好的。

现在,如果我想要一个只有 1 的与会者列表attended CourseAttend,我将查询更改为:

这次第一个与会者不包括在查询中,因为它计为 2(包括“已取消”)。

它应该是这样工作的吗?

我知道我可以构建不同的查询,例如:

...但我真正的查询要复杂得多。

来自 EF 的 SQL:

看起来 EF 计算所有参加者 CourseAttends 而不仅仅是状态为“参加”的参加者?

0 投票
0 回答
26 浏览

c# - 无法将 ValueObject 与另一个表列一起设置为数据库索引

我有以下 ValueMember

在以下课程中(Asp.Net Core IdentityUser)

这些列(名字、姓氏)以及电子邮件列是数据库索引的一部分。我的 dbcontext 中有以下内容:

当我运行我的应用程序时,出现以下错误System.InvalidOperationException: ''Name' cannot be used as a property on entity type 'ApplicationUser' because it is configured as a navigation.'

如何在不收到上述错误的情况下设置索引?

0 投票
1 回答
86 浏览

c# - 使用 EF Core Fluent 配置唯一且不可为空

我应该如何使用 EF Core fluent 配置强制执行一个不是主键的属性

(编辑自:

在 EF Core 5.0 fluent 配置中,是否HasAlternateKey暗示IsRequired,或者我应该将两者添加到同一个约束中?

PS ..我看到该属性变为只读,所以问题转移到HasIndex方法上......)

0 投票
0 回答
57 浏览

ef-core-5.0 - 如何从 EF Core 5 DBContext 事务对象获取 SqlTransaction 对象,因为我需要将其传递给 SqlBulkCopy 操作

我正在尝试在 DbContext 上启动事务并对上下文进行一些操作,然后想将相同的事务作为第三个参数传递给 SqlBulkCopy 操作。

在 EF Core 5 中,DbContent 类我没有找到一种方法来获取可以传递给 SqlBulkCopy 操作的 SqlTransaction/DbTransaction 对象。在代码中,_contextTransaction 对象的类型是 DbContextTransaction,它似乎是最新 EF Core 中 MS 的一个重大变化。为了便于理解,我在代码中添加了[不兼容]。

如果有人可以提出解决方法/解决方案。

0 投票
1 回答
166 浏览

c# - 如何在 ASP.NET Core 5 中的 IdentityUser 和 IdentityRole 之间使用隐式多对多

我有这两个实体。

我想自定义这两个实体,例如覆盖导航属性。我不想将 IdentityUserRole 类用于这些类之间的多对多关系。

我应该如何在 Identity Core 中为这种类型的隐式多对多编写配置?