问题标签 [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.

0 投票
1 回答
23 浏览

entity-framework - 使用 Fluent 语法定义从 Person 到 Country 但不是从 Country 到 Persons 的导航

我之间有以下关系,Person并按Country约定定义。这完美地工作。

我现在希望将属性名称更改为其他名称Country。据我了解,这意味着按照惯例,这种关系不再有效。所以我希望使用流利的语法来定义它。

我找到了这个参考,但我不清楚我应该如何处理这个确切的场景,因为在他们的例子中,关系的两边都包含一个外键或集合。

有一节“配置与一个导航属性的关系”让我认为它应该如下所示:

但是,每当存储国家/地区时,都会导致以下异常

所以我现在的问题是: - 如何使用流利的语法定义上述“按惯例”关系?- 使用流利语法时是否仍需要 CountryId 属性?

0 投票
0 回答
513 浏览

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 的已知限制吗?

0 投票
2 回答
19366 浏览

c# - 在实体框架 6 中映射 HasOptional().WithOptionalDependent() 关系中的外键

我在 Entity Framework 6.1.3 中有以下数据模型:

当我启动这段代码时,我得到了我想要的完全正确的表结构:

但是,现在我想添加在实体Student_Id中可用的属性。Contact所以我可以阅读Student_Id而不需要通过.Student.Id导航加入另一个表。

如果我将属性添加到Contact实体,我最终会得到两列Student_IdStudent_Id1,或者我会得到一条错误消息,说Each property name in a type must be unique..

该列已经在数据库中,我只需要在实体中也有它,为什么这么麻烦?有解决办法吗?

0 投票
1 回答
2187 浏览

c# - EF Core 流利映射到内部对象属性

我有一个包含一些属性的类。由于某些架构原因,我的班级中有另一个对象的实例。

简单的例子

为此,我创建了流畅的映射,例如:

我无法将所有 subEntity 属性集成到我的主实体中(我的 subEntity 有自己的智能)。我只想将未存储在单独表中的子实体属性映射到 myEntity 表。

最后一行抛出异常:

我怎样才能执行这样的映射?

0 投票
1 回答
71 浏览

database - 实体框架:如何创建具有相同对象的双重关系(1-1 和多-1)

我有两节课:

简单来说,master 有一个 main sub 来定义它,并且可以有 0 个或多个“secondary” subs。我试过用这种方式映射

但正如预期的那样,我有一个例外(“大师不能参与两个关系”)。我不想更改我的模型,因为它符合我的需要,我该如何执行这样的映射来做到这一点?

0 投票
1 回答
2702 浏览

c# - EntityFramework Core Fluent 模型生成器键和属性

好的,所以在实体框架 6 中,我将在一个语句中生成密钥和属性数据库:

在实体框架核心 (7) 中,这不起作用:

错误:“‘KeyBuilder’不包含‘Property’的定义,并且没有扩展方法‘Property’接受‘KeyBuilder’类型的第一个参数”:

这是否必须是如下两个单独的语句,或者有没有办法像在 EF6 中那样将它放在一个语句中?

0 投票
1 回答
41 浏览

c# - EF6流畅的一对一stackoverflow

我已经阅读了很多帖子,其中一些对我有帮助,但是我仍然有一个关于使用 Entity framework 6 fluent 定义的一对一关系(Employe 和 Adresse 之间)的 stackoverflow。当我创建包含一些 DTO 的 ViewModel 的新实例时,错误出现在 AdresseDTO 上。

我的普通对象

我的 DTO

我如何将我的 DTO 与普通对象映射

使用 EF6 fluent 进行映射

并且 ViewModel 会导致错误

当创建一个新的 EmployeDTO() 时会发生 stackoverflow。我试图通过在可能的地方添加 .MaxDepth(1) 来解决这个问题,但它不起作用......对不起,伙计们,我知道这是一篇很长的帖子,但我对我的问题一无所知,所以我试试向您展示我的代码中最相关的部分。

谢谢大家,我是 EF6 的新手,所以如果你有任何提示或好的做法可以分享,我会很高兴。

0 投票
0 回答
34 浏览

entity-framework - Entity Framework 6 几个一对一

Entity Framework 6 的另一个问题。我不知道为什么,但是当我排队 2 个一对多关系时,我很难从数据库中取回我的对象​​。

我的普通对象

Ef6 流利的映射

目前,我可以存储一个包含 Etage 列表和许多 PositionModule 的计划。但是当我想通过 id 取回我的所有计划时,listEtages 是空的。

通过检查数据库,所有外​​键都很好,我将一对多与其他两个(更简单的)对象一起使用,它工作正常......

这是我第一个使用 EF6 的项目,所以如果您有任何提示要分享,那将是一种乐趣。

谢谢

更新

我的 DTO

我如何映射我的 DTO 和普通对象(使用自动映射器)

我创建并尝试取回我的计划的控制器

0 投票
1 回答
907 浏览

c# - 如何在 Entity Framework 6 中使用 Fluent API 映射没有外键属性的一对多对象列表?

我有以下类(我无法更新、添加属性或添加注释):

我正在尝试使用 Entity Framework 6 编写一些 Fluent API 代码以将它们映射到两个表。

这是 ApprovalRule 配置:

到目前为止,我有:

由于无法确定主键列,因此无法创建具有列“ApprovalRuleset_Id”的表“ApprovalRules”上的外键。使用 AddForeignKey fluent API 来完全指定外键。

多重性与关系“ApprovalRuleset_ApprovalRules”中角色“ApprovalRuleset_ApprovalRules_Target”中的引用约束冲突。因为从属角色中的所有属性都不可为空,所以主体角色的多重性必须为“1”。

我错过了什么?我花了很长时间搜索堆栈溢出和谷歌。

0 投票
0 回答
904 浏览

c# - 跨指向其他数据库的多个上下文的环境事务

设置的简短描述:

EF Core 与流畅的映射一起使用。共有三个数据库,每个数据库有一个上下文。问题是跨两个或所有三个上下文开始事务范围。OnConfiguration 方法在每个上下文中都被覆盖,如下例所示:

我已经尝试开始交易的内容:

在上下文上开始事务并将其传递给另一个上下文

开始一个事务范围

EF 在每一种方式上都会引发环境事务异常。

我在互联网的某个地方找到了另一个解决方案(失去了链接,对不起,伙计们)。他们没有将连接字符串传递给上下文,而是将连接本身传递给上下文。但是我不明白当时应该如何在上下文中连接到不同的数据库。

有没有人解决这个问题?