问题标签 [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.
c# - 作为 EntityFramework Core 中的字段的接口
有没有办法将接口用作 EF Core 中的类的字段(CodeFirst,最后一个版本到第 5.0 天)?
说
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 崩溃了。我不知道在哪里寻找问题的根源。
c# - 我可以使用 Fluent API 通过构造函数传递 HashSet 吗?
我有一个结构如下的域模型:
现在,我想使用 EF 的 Fluent API 来持久化它,但我不断收到这样的InvalidOperationException
说法:
没有为实体类型“Foo”找到合适的构造函数。以下构造函数具有无法绑定到实体类型属性的参数:无法在“Foo(HashSet<int> intSet)”中绑定“intSet”。
我试过使用ModelBuilder
下面显示的选项,不幸的是无济于事:
有没有任何实际的方法可以使这项工作?请注意,我绝对不想使用DataAnnotations
.
c# - 使用新的 EF Core 5.0 将一对多迁移到多对多
我有一个 ASP.NET Core 5 项目(从 ASP.NET Core 3.1 迁移而来)。该项目使用 EF Core。
EF Core 5 内置了对多对多的支持。我首先从 3.1 迁移到 5.0 的主要原因。
现在我的项目具有一对多关系,我想将其转换为多对多。
这样的关系迁移可能吗?
当前代码:
在上面的代码中,您可以看到一条记录有零个、一个或多个文件。一个文件只有一个关联的记录。
我想更改此设置,以便可以将单个文件分配给多个记录(这样我可以减少重复文件并减少磁盘空间,通过增加缓存命中等来改善网络流量......)。
在文件类中,我是否只需删除这些代码行:
并用下面的这一行替换它?
我不想破坏和手动更改数千个文件记录关系......或破坏它们。
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(...)
但它会生成相同的异常。
c# - .Where on .Include 未反映在 where 子句中
也许这是设计使然,但我有一个奇怪的例子:
我知道查询中的第一个与会者有 2 CourseAttends
。第一个带有状态attended
,第二个带有cancelled
。
如果我执行 a ,foreach
则查询返回一个CourseAttend
. Attendee
那挺好的。
现在,如果我想要一个只有 1 的与会者列表attended
CourseAttend
,我将查询更改为:
这次第一个与会者不包括在查询中,因为它计为 2(包括“已取消”)。
它应该是这样工作的吗?
我知道我可以构建不同的查询,例如:
...但我真正的查询要复杂得多。
来自 EF 的 SQL:
看起来 EF 计算所有参加者 CourseAttends 而不仅仅是状态为“参加”的参加者?
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.'
如何在不收到上述错误的情况下设置索引?
c# - 使用 EF Core Fluent 配置唯一且不可为空
我应该如何使用 EF Core fluent 配置强制执行一个不是主键的属性
(编辑自:
在 EF Core 5.0 fluent 配置中,是否HasAlternateKey
暗示IsRequired
,或者我应该将两者添加到同一个约束中?
PS ..我看到该属性变为只读,所以问题转移到HasIndex
方法上......)
ef-core-5.0 - 如何从 EF Core 5 DBContext 事务对象获取 SqlTransaction 对象,因为我需要将其传递给 SqlBulkCopy 操作
我正在尝试在 DbContext 上启动事务并对上下文进行一些操作,然后想将相同的事务作为第三个参数传递给 SqlBulkCopy 操作。
在 EF Core 5 中,DbContent 类我没有找到一种方法来获取可以传递给 SqlBulkCopy 操作的 SqlTransaction/DbTransaction 对象。在代码中,_contextTransaction 对象的类型是 DbContextTransaction,它似乎是最新 EF Core 中 MS 的一个重大变化。为了便于理解,我在代码中添加了[不兼容]。
如果有人可以提出解决方法/解决方案。
c# - 如何在 ASP.NET Core 5 中的 IdentityUser 和 IdentityRole 之间使用隐式多对多
我有这两个实体。
我想自定义这两个实体,例如覆盖导航属性。我不想将 IdentityUserRole 类用于这些类之间的多对多关系。
我应该如何在 Identity Core 中为这种类型的隐式多对多编写配置?