问题标签 [fluent-entity-framework]
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 - 使用 Fluent 语法定义从 Person 到 Country 但不是从 Country 到 Persons 的导航
我之间有以下关系,Person
并按Country
约定定义。这完美地工作。
我现在希望将属性名称更改为其他名称Country
。据我了解,这意味着按照惯例,这种关系不再有效。所以我希望使用流利的语法来定义它。
我找到了这个参考,但我不清楚我应该如何处理这个确切的场景,因为在他们的例子中,关系的两边都包含一个外键或集合。
有一节“配置与一个导航属性的关系”让我认为它应该如下所示:
但是,每当存储国家/地区时,都会导致以下异常
所以我现在的问题是: - 如何使用流利的语法定义上述“按惯例”关系?- 使用流利语法时是否仍需要 CountryId 属性?
c# - Entity Framework中实体上多个同类型的一对一关系
我有一个模型:
Bar1 和 Bar2 是可选的,但所有 Bar 都需要 Foo。Foos 表上有一个 Bar1_Id 列和 Bar2_Id 列。
我试过这个配置:
这产生了一个试图将 Foo_Id 添加到 Bars 表的迁移:
这不是我想要的,所以我尝试从迁移中删除这些行并运行在尝试加载 Bar 时当然会产生错误的代码:
列名“Foo_Id”无效。
然后我尝试了这个配置:
迁移时产生此错误:
System.Data.Entity.Core.MetadataException:指定的架构无效。错误:未加载关系“Test.Foo_Bar1”,因为“Test.Bars”类型不可用。
我在其他地方有这种关系,但在实体上有两个相同类型的地方没有。这是 EF6 的已知限制吗?
c# - 在实体框架 6 中映射 HasOptional().WithOptionalDependent() 关系中的外键
我在 Entity Framework 6.1.3 中有以下数据模型:
当我启动这段代码时,我得到了我想要的完全正确的表结构:
但是,现在我想添加在实体Student_Id
中可用的属性。Contact
所以我可以阅读Student_Id
而不需要通过.Student.Id
导航加入另一个表。
如果我将属性添加到Contact
实体,我最终会得到两列Student_Id
和Student_Id1
,或者我会得到一条错误消息,说Each property name in a type must be unique.
.
该列已经在数据库中,我只需要在实体中也有它,为什么这么麻烦?有解决办法吗?
c# - EF Core 流利映射到内部对象属性
我有一个包含一些属性的类。由于某些架构原因,我的班级中有另一个对象的实例。
简单的例子
为此,我创建了流畅的映射,例如:
我无法将所有 subEntity 属性集成到我的主实体中(我的 subEntity 有自己的智能)。我只想将未存储在单独表中的子实体属性映射到 myEntity 表。
最后一行抛出异常:
我怎样才能执行这样的映射?
database - 实体框架:如何创建具有相同对象的双重关系(1-1 和多-1)
我有两节课:
和
简单来说,master 有一个 main sub 来定义它,并且可以有 0 个或多个“secondary” subs。我试过用这种方式映射
但正如预期的那样,我有一个例外(“大师不能参与两个关系”)。我不想更改我的模型,因为它符合我的需要,我该如何执行这样的映射来做到这一点?
c# - EntityFramework Core Fluent 模型生成器键和属性
好的,所以在实体框架 6 中,我将在一个语句中生成密钥和属性数据库:
在实体框架核心 (7) 中,这不起作用:
错误:“‘KeyBuilder’不包含‘Property’的定义,并且没有扩展方法‘Property’接受‘KeyBuilder’类型的第一个参数”:
这是否必须是如下两个单独的语句,或者有没有办法像在 EF6 中那样将它放在一个语句中?
c# - EF6流畅的一对一stackoverflow
我已经阅读了很多帖子,其中一些对我有帮助,但是我仍然有一个关于使用 Entity framework 6 fluent 定义的一对一关系(Employe 和 Adresse 之间)的 stackoverflow。当我创建包含一些 DTO 的 ViewModel 的新实例时,错误出现在 AdresseDTO 上。
我的普通对象
我的 DTO
我如何将我的 DTO 与普通对象映射
使用 EF6 fluent 进行映射
并且 ViewModel 会导致错误
当创建一个新的 EmployeDTO() 时会发生 stackoverflow。我试图通过在可能的地方添加 .MaxDepth(1) 来解决这个问题,但它不起作用......对不起,伙计们,我知道这是一篇很长的帖子,但我对我的问题一无所知,所以我试试向您展示我的代码中最相关的部分。
谢谢大家,我是 EF6 的新手,所以如果你有任何提示或好的做法可以分享,我会很高兴。
entity-framework - Entity Framework 6 几个一对一
Entity Framework 6 的另一个问题。我不知道为什么,但是当我排队 2 个一对多关系时,我很难从数据库中取回我的对象。
我的普通对象
Ef6 流利的映射
目前,我可以存储一个包含 Etage 列表和许多 PositionModule 的计划。但是当我想通过 id 取回我的所有计划时,listEtages 是空的。
通过检查数据库,所有外键都很好,我将一对多与其他两个(更简单的)对象一起使用,它工作正常......
这是我第一个使用 EF6 的项目,所以如果您有任何提示要分享,那将是一种乐趣。
谢谢
更新
我的 DTO
我如何映射我的 DTO 和普通对象(使用自动映射器)
我创建并尝试取回我的计划的控制器
c# - 如何在 Entity Framework 6 中使用 Fluent API 映射没有外键属性的一对多对象列表?
我有以下类(我无法更新、添加属性或添加注释):
我正在尝试使用 Entity Framework 6 编写一些 Fluent API 代码以将它们映射到两个表。
这是 ApprovalRule 配置:
到目前为止,我有:
由于无法确定主键列,因此无法创建具有列“ApprovalRuleset_Id”的表“ApprovalRules”上的外键。使用 AddForeignKey fluent API 来完全指定外键。
多重性与关系“ApprovalRuleset_ApprovalRules”中角色“ApprovalRuleset_ApprovalRules_Target”中的引用约束冲突。因为从属角色中的所有属性都不可为空,所以主体角色的多重性必须为“1”。
我错过了什么?我花了很长时间搜索堆栈溢出和谷歌。
c# - 跨指向其他数据库的多个上下文的环境事务
设置的简短描述:
EF Core 与流畅的映射一起使用。共有三个数据库,每个数据库有一个上下文。问题是跨两个或所有三个上下文开始事务范围。OnConfiguration 方法在每个上下文中都被覆盖,如下例所示:
我已经尝试开始交易的内容:
在上下文上开始事务并将其传递给另一个上下文
开始一个事务范围
EF 在每一种方式上都会引发环境事务异常。
我在互联网的某个地方找到了另一个解决方案(失去了链接,对不起,伙计们)。他们没有将连接字符串传递给上下文,而是将连接本身传递给上下文。但是我不明白当时应该如何在上下文中连接到不同的数据库。
有没有人解决这个问题?