问题标签 [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 投票
2 回答
2996 浏览

c# - 使用流利的 api EF Core 5 的多对多关系

我想我有两个具有多对多关系的实体,我将使用 fluent api 来解决这种关系

使用 ef core 5 我们不需要创建新实体。问题出在我的数据库中,现在我有一个名称为的表

作者书

有两列

AuthorsAuthorId 和 BooksBookId。

如何更改新表的名称和两列的名称?也是解决这种关系的正确方法吗?

0 投票
1 回答
168 浏览

entity-framework-core - LINQ-to-Objects - 不能按对象分组

我将 efcore 2.2 升级到 5 并且 simple group by 不起作用,
数据已经在内存中,看看:

在 Ef Core 2.2 中它运行良好,业务按其类别分组,现在它什么也不做。

如果我尝试按 id 分组,它可以工作:

但我需要 Category 实体,这样我只能得到类别 ID。

0 投票
1 回答
95 浏览

c# - 尽管配置了 FK,但 EF Core 创建阴影属性

我发现 EF 核心正在为我的外键生成影子属性,尽管我正在配置它们,从我从文档中可以看出,它应该只在它不能匹配列的数据类型时才这样做,但它们都是指导。这是我的 FK 的一部分:

另一半:

ef core 的配置在这里:

但是,当我进行迁移时,它会创建一个 propertyId1 列并将 FK 附加到该列以及 PropertyId 字段,任何想法为什么要创建这个新列?

编辑我认为它与列和 FK 的可空性(?)有关,在分类对象中,PropertyId 是一个 Guid 并设置为不可为空,它总是想要创建的 PropertyId1 是一个可为空的 Guid,但我不知道如何强制它不可为空,或者只是使用我告诉它的属性?

0 投票
1 回答
738 浏览

entity-framework-core - 与 ef core 5 的一对一关系(使用 2 个 FK)

我有这两个实体。每本书可以有一个或零个 BookDetail(1 对 1 关系)

我想有 2 面外键,我只是为一侧外键找到解决方案,但我想将 BookDetail 的 FK Id 存储在 Book 上,反之亦然在 EF Core 5 中。

0 投票
1 回答
368 浏览

c# - EF Core 中的零或一关系

我在 EF Core 中有一个零或一关系的特殊场景,默认情况下无法轻松建模(如EF Core 一对一或零关系中所述)。

我有多个实体与“匹配”实体具有 0-1 关系。多个实例可以引用同一个“匹配”实体(这就是为什么我不能将外键放入“匹配”表的原因,这似乎是建模 0-1 关系的推荐方式)。

如何定义从实体之一到 0-1“匹配”实体的关系?我必须创建一个 Match().HasMany(someKindOfBaseClassOfEntities) 吗?有没有更好的办法?

0 投票
1 回答
561 浏览

c# - 跳过导航没有定义外键

语境

我正在关注 Entity Framework Core 中新的多对多关系建模的示例,在此处引用:

https://docs.microsoft.com/en-us/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key#many-to-many

并由在这里构建它的团队(展开 2020 年 7 月 23 日的帖子):https ://github.com/dotnet/efcore/issues/19549

我已经通过一个新的 .NET Web API 项目完成了这项工作——唯一的变化是在我的模型中我使用的是 Staff 和 Team 对象,而不是示例中的 Post 和 Tag 对象。

我的设置

  • macOS 10.15.7(卡特琳娜)
  • .NET 框架 5.0.101
  • EF 版本 5.0.1

问题

当我运行迁移时,EF 会按照文档描述在生成的 SQL 代码中创建查找表,即使没有定义查找对象。这很棒。

但是,在我应用 SQL 更改并运行应用程序后,当我访问 API 端点时,我收到一条错误消息:

The skip navigation 'Staff.Teams' has no foreign key defined.

我对此感到困惑,因为示例没有在其模型中定义外键。

我做了一些环顾四周,但没有设法找到类似的问题。

想知道这是否可能是 macOS 上的 .NET 的问题。

谢谢。

0 投票
1 回答
140 浏览

ef-core-5.0 - EFCore 5.0 拦截器语句类型

我已经实现了一个 DbCommandInterceptor,为生成的 SQL 添加了最大递归深度:

当不检查 SQL 是否以 SELECT ( command.CommandText.StartsWith("SELECT")) 开头时,我肯定会在更新语句上遇到异常(例如context.SaveChanges())。检查查询类型是否有更简洁的解决方案?像命令上的枚举或类似的?

谢谢!

0 投票
2 回答
352 浏览

asp.net-core - EF Core 5 TPT 和身份 (CRUD)

我想使用 EF Core 的 TPT 功能,我想将它与 Identity 集成,但我在添加到数据库时遇到了一些问题。

这是我的数据库上下文类

一切正常。

在此处输入图像描述

但我不知道如何插入新老师或新学生。

例如,这是添加新教师的代码。

我应该如何添加新的学生或老师?谢谢,

更新: 在此处输入图像描述

0 投票
0 回答
303 浏览

c# - Xamarin 上的“此平台不支持 Microsoft.Data.SqlClient”

无论我做什么,我都会得到

此平台不支持 Microsoft.Data.SqlClient

我尝试降级 Entity Framework Core 包、Xamarin.Forms 包、更改 .net 标准版本等。

-

这些是我现在正在运行的软件包版本。

这是导致错误的代码:

使用 PCL、.NET 标准 2.1 编写的代码。我的代码中没有对Microsoft.Data.SqlClient包的任何引用,唯一的引用是Microsoft.EntityFrameworkCore.SqlServer我用来设置连接字符串的引用。

0 投票
1 回答
1699 浏览

asp.net-core - 更新数据库(EF Core 5)失败(代码优先)

我将环境升级到 ASP.NET Core 5.01,但在使用代码优先方法更新数据库时遇到了一些困难。Add-Migration 命令按预期工作并生成正确的迁移源文件。但是,当我尝试运行更新数据库时,我遇到了错误。这是我的 PMC 的输出:

运行 Update-Database -verbose 时,我得到以下输出:

输出表明 Program.cs 类中没有 CreateHostBuilder 但它显然存在:

如果我随后尝试发出 Remove-Migration 命令,我会得到相同的结果:

我在错误消息中查找了建议的链接,但我没有看到我做错了什么。我还使用完全相同的步骤(在升级之前)执行了六次没有问题的迁移,这些步骤是:

我对EF相当陌生。这是我第一次尝试将它用于项目。任何帮助将不胜感激。现在我已经升级到 .Net Core 5.0.1,我做错了什么吗?

谢谢

--- 值