问题标签 [ef-core-2.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 投票
5 回答
3158 浏览

c# - EF Core:带有阴影属性和查询过滤器的软删除

我创建了一个界面来尝试进行软删除,混合阴影属性和查询过滤器。但它不起作用。

然后在我的模型构建器中

但是带有查询过滤器的行无法编译。我得到的错误是“无法将 lambda 表达式转换为类型 'lambda 表达式',因为它不是委托类型”

如果我这样做,它会起作用。

有什么办法可以做到这一点?这是为了在我想使用软删除实体的每个实体中拥有一个与 IDeletableEntity 的接口并且不必这样做

提前谢谢了,

0 投票
1 回答
733 浏览

c# - MVC Core 2.0 EF Core SqlException:不允许新事务,因为会话中还有其他线程在运行

这个问题有很多线程,但大多数似乎是在有人试图循环并保存在 IQueryable 而不是 IList 的上下文中出现的,这不是我正在做的。

我在控制器和存储库之间传递上下文时遇到问题。我在我的应用程序的其他地方遇到了这个问题,但下面是说明和重新创建此问题的简单方法。

首先,我在 Startup.cs 中将我的 DbContext 设置为服务。

然后,我有一个控制器,它被注入。当我直接从控制器使用上下文时,前两个保存工作正常,但是当我从 repo 中使用它时,它会出错并出现标题中的异常。请注意,如果我在尝试将记录保存在我的存储库中之前将它保存在控制器中,它只会出错。

这是存储库类:

这应该是任何 DB 写入的入口点,但是,我正在使用 ASP.NET 身份并自动登录此会话,所以我不确定它是否也会影响这一点。

0 投票
2 回答
1961 浏览

c# - EF Core 表拆分 - 一个表到多个类

我的表有四列,我想在多个类之间拆分它。

modelBuilder.Entity().ToTable("table1");
modelBuilder.Entity().ToTable("table1");

目前它给了我

System.InvalidOperationException:'不能将表'table1'用于实体类型'ClassB',因为它正在用于实体类型'ClassA'

EF Core 有可能吗?

谢谢

0 投票
1 回答
574 浏览

c# - EF 核心,INotifyPropertyChanged

我正在我的 EF POCO 上实现 INotifyPropertyChanged 接口。我正在使用 newtonsoft 将我的模型序列化为 JSON。目前我的对象正在使用 [JsonProperty] 属性来告诉 newtonsoft 要序列化什么。当我实现这个接口时,我将拥有带有私有支持字段的属性。我是否将 [JsonProperty] 属性放在属性或支持字段上?

0 投票
1 回答
281 浏览

c# - 如何将自定义名称约定与拥有的类型一起使用?

没有使用我的约定,我得到了

我的约定snake_case来自PascalCase

有了它,查询变得无效:

看起来我不需要将我的转换应用于一些entity

之后我得到:

'ProcessInitialization.ProcessContext#MyProcessContext' 上的键 {'ProcessInitializationCorrelationId'} 和 'ProcessInitialization' 上的 {'CorrelationId'} 都映射到 'process_initialization.PK_process_initialization' 但具有不同的列({'process_initialization_correlation_id'} 和 {'correlation_id'} )。

0 投票
3 回答
19845 浏览

entity-framework - EF Core 2.0 枚举存储为字符串

我能够将枚举作为字符串存储在数据库中。

但是当查询时,EF 不知道将字符串解析为枚举。我怎样才能这样查询:

这是一个例外:将 varchar 值“机会”转换为数据类型 int 时转换失败

0 投票
1 回答
67 浏览

entity-framework - 实体框架核心一对一

数据库

(Project,Contest,LocalJob)-> 每一个都有1个WorkDetails,1个WorkDetails有一个

您好,这是我的数据库,我想问您以下问题:

我应该在 WorkDetails 中为项目、竞赛或 LocalJobs 添加外键列吗?

如果我必须如何实现导航属性?

0 投票
1 回答
949 浏览

postgresql - Entity Framework Core 中的每个操作排序规则

我有一个使用默认 C 排序规则的数据库。该数据库适用于英语和法语用户都将使用的应用程序,因此我无法在设计时在数据库本身上设置特定的排序规则,但我必须基于每个操作进行设置,基于当前线程的语言环境。

PostgreSQL 对此有支持:

我知道我们可以在设计时在 EF Core 代码优先迁移中做到这一点,但是有没有办法在每个操作的基础上做到这一点?

0 投票
2 回答
3408 浏览

c# - 如何使用内存数据库中的实体框架核心自动增加列?

我正在使用这样的内存 EF Core 数据库:

我正在使用 Bogus 添加一些随机数据。

在此资源集合中,所有 id 仍然为零。

当我执行 AddRange 时,我希望生成 id:

但它们不是生成的。

System.AggregateException :发生一个或多个错误。(无法跟踪实体类型“资源”的实例,因为已经在跟踪具有与 {'ResourceId'} 相同键值的另一个实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。

所以我想,然后让我设置它们并自己制作一个自动增量机制。那行得通。

但是,当我尝试测试我的Add方法时(这些方法插入记录)。我无法在这些方法中设置 ID,因为 ID 甚至不在界面中。我再次希望 EF 自动生成 ID,但它会尝试插入 ID 1(这已经被采用,因为我已经生成了 ID 1 直到 20)。

有谁知道如何告诉内存数据库中的 EF 核心始终自动递增它的键?

0 投票
0 回答
24 浏览

c# - 使用 EF Core 中某些上下文之外的实体关系迁移多个数据库上下文时保留实体之间的关系

我有多个DB contexts包含DBSets它们之间的关系。我可以分别迁移每个DB context。但是我担心实体之间的关系不会被保留,因为我指定在每个上下文中必须忽略哪些实体,这样我就不允许EntityFramework拉入所有DBSets彼此相关的实体。

如何同时迁移所有上下文以EntityFramework保留实体之间的关系?

到目前为止,我知道的唯一解决方案是创建一个包含所有内容的上下文DBSets并使用该上下文进行迁移。