问题标签 [ef-power-tools]

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 投票
3 回答
7089 浏览

c# - 用于处理空字符串的数据注释

我使用 EF Core Powertools 将我的 Db 中的一组表逆向工程为 EF 数据模型。

在表中创建记录时,一个或多个 varchar 字段被标记为允许为空。

如果我更新这些字段上的实体属性以使用

这将使空字符串通过,但是在查询表中已经包含一个或多个这些字段的空值的实体列表时,这不会因为属性而失败吗?例如,它不只是空的,它是空的。

那么如何修改实体定义以既允许保存空字符串,又允许查询结果中的空值呢?

0 投票
2 回答
1493 浏览

ef-core-2.2 - EF Core 电动工具生成可为空的布尔值

我正在使用带有EF Core Power Tools版本的版本2.4.0Miccrosoft.EntifyFrameworkCore.SqlServer2.2.6

IsActive定义了 SQL 表列,因为[IsActive] [bit] NOT NULL
我使用 EF Core Power Tool 的逆向工程来生成实体和数据库上下文。

ISSUE
该工具生成可为空的布尔属性,而不仅仅是布尔

public bool? IsActive { get; set; }

对应 DBContext 的 OnModelCreating 方法

0 投票
0 回答
196 浏览

c# - EF Core 3.1.3:将 .Include() 与基本父/子关系表一起使用时生成额外的列

当我尝试使用.Include()扩展方法使用 Entity Framework Core 3.1.3 时,我在诊断错误时遇到了一些问题(无效的列名 'AgencyOfficeId' )。我正在尝试返回父记录(AgencyEmployee)和相应关系记录的集合。下面是我尝试运行以返回 List 的 C# 代码,其中包括其关联的 AgencyOfficeAgencyEmployeeRelationship 记录。(C# 模型和 DbContext 配置如下。)

EF Core 在运行上述代码时生成的原始 SQL 如下:

我有三个模型代表 MS SQL Server 中的表:AgencyOfficeAgencyEmployeeAgencyOfficeAgencyEmployeeRelationship。我正在使用 EFPowerTools 的逆向工程师功能生成以下 C# 模型:

机构员工

代理处

AgencyOfficeAgencyEmployeeRelationship :

这是OnModelCreating()方法中每个表/模型的 DbContext 配置

下面是 MS SQL Server 表是如何设置的关系图: SQL Server关系图

有人对我可能出错的地方有任何想法吗?如果我尝试选择AgencyOffices和相关关系记录,EF Core 会生成有效的 SQL,而不需要任何额外的字段。仅当我尝试选择AgencyEmployees时才会出现问题。

如果有人需要任何其他信息,请告诉我。感谢您抽出宝贵的时间!

0 投票
1 回答
913 浏览

c# - EF Core Power Tools 逆向工程师在不同 SQL 服务器上的模型上创建不同的属性

我正在使用 EF Core Power Tools 通过在 Visual Studio .Net 中选择 EF Core Power Tools -> Reverse Enegineer 来生成我的模型。

我仍在使用 EF Core 2.x,因此我从第一个对话框中删除了复选标记,您可以在其中选择使用 EF Core 3.x。

在最后一个选项对话框中,我选择:

  • 使用 DataAnnotation 属性来配置模型。
  • 使用 Handlebars 模板 (C#) 自定义代码。

我正在为我的数据库使用 SQL Server。

我的问题是,当我在本地数据库上运行工具时,生成的模型与另一台服务器上的数据库版本不同。

不同之处在于生成的 POCO 类。在我的本地数据库上,生成了以下类:

当我针对另一个数据库运行该工具时,代码如下所示:

为什么该工具生成的模型在一个数据库的 dbo 表上具有属性而在另一个数据库上没有属性?

0 投票
1 回答
32 浏览

.net-core - EF Power Tools 默认为 pascalcase

我们最近采用 EF Power Tools 逆向工程在 .Net Core 3 Web API 中创建实体。这产生了以 pascalcase 而不是默认的 camelcase 返回数据的意外后果。我已经尝试过startup.cs

0 投票
0 回答
232 浏览

entity-framework-core - EF Core Power Tools 不保留标识列名称

我有.NET Core 3.1 .NET Standard 2.0 类库,Microsoft.EntityFrameworkCore.SqlServer 3.1.8.我正在使用 VS 2019 和 EF Core Power Tools2.4.217

我所有的 SQL 表名称都是复数形式,并且具有具有以下命名约定的标识列{TableName}ID。所以例如Documents表有标识列DocumentID

当我使用逆向工程生成实体时,电动工具生成属性名称DocumentId而不是DocumentID

外键列也会出现同样的问题。

如何告诉电动工具不要ID改成Id

更新 1
请注意,我有另一个具有不同数据库的 .NET Core 2.* 应用程序。我正在使用相同版本的电动工具,它IDID预期生成。但是.NET Core 3 有问题

0 投票
1 回答
46 浏览

sqlite - 编辑 SQLite3 数据库信息

在 VS2019 中,我打开了“SQLite/SQL Server Compact Toolbox”窗口。如果我右键单击我的 SQLite3 数据库,菜单项之一会显示“数据库信息”。如果我运行它,我会得到:

我还可以WrongProjectPath使用 HEX 编辑器在实际的 db 文件中看到。

我从另一个项目中复制了这个数据库,现在想更改该信息以反映正确的项目名称。

我怎样才能做到这一点?

0 投票
0 回答
199 浏览

azure - Entity Framework Core 5 尝试为计算列插入值

使用 Entity Framework 5 和 EF Core Power Tools(启用了生成 ef 5 代码的设置),我们会为每个计算列生成类似以下代码:

这是完全正确的。

不幸的是,尝试创建一个具有计算列的新实体并尝试保存我们从 ef core 5 中得到以下异常:

无法修改列“...”,因为它是计算列或者是 UNION 运算符的结果

当手动附加类似这样的ValueGeneratedOnAddOrUpdate之后:HasComputedColumnSql

一切正常。

根据文档,这应该由HasComputedColumnSql.

可以做些什么来克服这个问题?

我们正在使用 Microsoft.EntityFrameworkCore v5.0.5 包,并且我们正在使用 Azure Managed Sql Server Instance

0 投票
0 回答
30 浏览

c# - EFCore Power Tools:要执行的应用程序不存在:'contextlist'

我正在使用EF Core Power Tools,当我尝试“将 DbContext 与数据库进行比较”时遇到问题:

在此处输入图像描述

我使用的是 2.5.636 版本。以下是 efptparams.txt 文件中的内容

当我尝试这个时,输出窗口中会显示以下内容:

0 投票
0 回答
88 浏览

c# - EF Core Power Tools 在不同的项目中生成模型

我正在使用一个巨大的数据库,并将我的实体放在自己的项目中,与数据库项目分开。EF Core Power Tools 提供了命名模型一旦生成后将添加到的位置的选项,有什么方法可以在另一个项目中生成模型?

答:这很简单,只需将 ../[project_name]/[folder_name] 添加到询问您希望在哪里生成模型的文本框中