问题标签 [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.
entity-framework-core - Entity Framework Core 5 - 递归结构错误
我正在尝试设置一个实体框架类,它有 4 个字段链接回相同类型的其他字段或为空。我的课看起来像这样:
如果我只有 NorthPatch 和 SouthPatch,这可以正常工作,但是一旦我添加第三个 EastPatch,我在尝试进行迁移时收到以下错误:
System.InvalidOperationException: Unable to determine the relationship represented by navigation 'Patch.NorthPatch' of type 'Patch'.
c# - “包含”操作中的表达式“y.Cases”无效
我有一对多的关系数据库。DbSetCompanies
为“一”,DbSetCases
为“多”。这是我的上下文和模型类:
数据库上下文
ParticipantCompany
类继承自Participant
类。
LegalCase
类代表关系中的“许多”
现在这里是查询:
我试图明确地y
转换为,ParticipantCompany
因为这似乎是执行提示所暗示的:
要定位在派生类型上声明的导航,请使用强制转换 ('t => ((Derived)t).MyProperty') 或 'as' 运算符 ('t => (t as Derived).MyProperty')
但它会产生相同的异常:
c# - 关于 EF Core 中的“拥有”类型
在我的项目中,我使用 EF Core fluent 配置,代码优先。我读了一些关于拥有类型的信息,但下面的情况对我来说并不是很清楚:
假设我有一个Project
实体和一个ProjectType
.
我应该将该属性映射为:
Entity<Project>.HasOne<ProjectType>();
或者更确切地说
Entity<Project>.OwnsOne<ProjectType>();
ProjectType
实体应映射到表ProjectType(ProjectTypeId, Name, Description)
正如我所读,拥有的是
“只能出现在其他实体类型的导航属性上的类型。这些被称为自有实体类型。包含自有实体类型的实体是它的所有者。自有实体本质上是所有者的一部分,没有它就无法存在”
就我而言
“ProjectType
只能出现在Project
实体类型的导航属性上。ProjectType
本质上是 的一部分,Project
没有它就不能存在”......但是,据我所知,为了创建一个单独的表,我需要使用HasOne
,而不是OwnsOne
......如果有人更好地解释这个想法,那就太好了。非常感谢。
c# - 将 2 个查询的结果添加到单个列表中,然后对其进行排序
在我的模型中,我有 2 个类:它们都继承自ParticipantCompany
并具有 string property 。他们也都意识到这需要他们拥有ParticipantPerson
Participant
.Name
IParticipant
.Name
这是模型本身:
}
我想要做的是查询所有Company
s 和所有Person
s,将结果合并到一个列表中,然后按.Name
.
postgresql - 如何使用 PredicateBuilder、EF Core 5 和 Postgresql 10+ 执行不区分大小写和重音的 LIKE(子字符串)查询?
LIKE
在 SQL Server 中,使用 EF Core 5 和 PredicateBuilder创建不区分大小写、不区分重音的查询相对简单。
例如:
- 用户正在尝试使用标准北美键盘在数据库中查找客户(即重音输入有点痛苦)。
- 搜索
helene
应该匹配Mme. Hélène Laurendeau
。重要的是我们可以匹配一个子字符串,而不仅仅是一个前缀或后缀。
假设我们有一个Customer
具有 property的实体Name
,以下代码段将按预期工作:
我们如何在 PostgreSQL(10 或更高版本)中执行相同的查询?
我们刚刚从 SQL Server 进行了快速(基本上是 1:1)迁移,并正在尝试更新我们的代码以确保可以进行一般迁移。这个问题没有考虑到可能的查询速度问题(有关更多信息,请参阅链接。)
c# - EF Core 5.0 - 更新 ASP.NET Core Web API 中的多对多实体
EF Core 5.0 引入了多对多关系。我被困在如何通过我的 asp .net api 更新它们。
对于一对一和一对多关系,有一个约定,只需添加属性名称后跟 ID。
所以一个合适的 POST 请求可能看起来像
但我不知道是否有约定或多对多关系的样子
是否有约定使用 EF 5.0 将 http 请求的主体映射到多对多关系?
c# - EF Core 5,如何定义多个“一对多”关系?
我正在创建一个自由任务管理应用程序。这是逻辑。这些是涉及的 3 个 POCO
用户(登录用户)
- 一个用户可以创建任意数量的客户端
- 用户可以创建任意数量的项目
- 一个用户由另一个用户创建,更新
客户(自由客户)
- 一个客户可以有任意数量的项目
- 客户端由用户创建、更新
项目
- 一个项目应该只有一个客户
- 项目由用户创建、更新
这些是我的实体。我正在使用 Code-First 方法并使用 SQLServer。我删除了许多要在此处发布的属性
用户实体
客户实体
项目实体
我现在面临着 ForginKeys 和映射的许多问题。这里的实体映射有什么问题?我无法在具有相同 CreatedById 的客户表中插入 2 行,EF 用唯一值限制它。
这是我的流利映射
我该如何实现这个要求?
c# - 自定义字段选项是领域驱动设计中的值对象还是实体
我正在使用 EF Core,并且我有一个场景,用户可以创建自定义字段,然后为该自定义字段创建选项。
CustomFieldOption 似乎是一个值对象,因为它包含的文本不需要 Id。但是就存储持久性而言,需要将 Id 存储在数据库中的不同表上,在该表中可以通过 Id 等进行查询...我不确定是否应将其添加为实体,因为 ValueObjects 没有 Id。
我遇到的另一个问题是验证。如果它是一个实体,我该如何验证 Text 属性。我知道对构造函数进行验证是一个坏主意。如果我在 ApplicationLayer 中验证它,那么无论我在哪里创建一个新对象,我都必须验证它是否为空且长度。如果我忘记在其中一个应用程序服务中添加验证并传递空文本,那么我会创建一个不一致的状态。
更新 #1
客户端可以选择自定义字段的一个或多个选项。我想这些需要存储在单独的表 ClientCustomFieldOptionValue 上。在那种情况下,这是一个实体还是一个值对象?那么CustomFieldOption呢。它会变成实体吗?我很困惑何时使用实体或值对象
c# - 配置实体时获取表名
EF Core:我需要将表的名称作为实体的名称,而不是 dbset,此外,我需要Id
将"tableName"+"Id"
.
我有一个DbSet<Country> Countries
- 我需要表名Country
和Id
列(从基本实体继承)是CountryId
.
我从这个有效的代码开始:
但现在我切换到个人配置。
我有以下内容:
问题:如何获取TableName
上面代码中配置的(不是实体名称)?
基类如下:
c# - EF 试图创建泛型类型表 (TEntity)
我从通用基类开始(ef-core,code-first)“按类”配置,如下所示:
add-migration
进展顺利,但它update-database
抱怨:
不能将表“TEntity”用于实体类型“Couche”,因为它正在用于实体类型“Affaire”和可能的其他实体类型,但没有链接关系。将外键添加到主键属性上的“Couche”,并指向映射到“TEntity”的另一个实体上的主键。
TEntity
当TEntity
它是泛型类型占位符时,为什么要使用表' '?