问题标签 [edmx-designer]

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 投票
2 回答
42 浏览

c# - 我可以从 edmx 模型更新数据库表吗?

是否可以从 edmx 模型更新数据库表,例如,如果我在 edmx 图中创建一个新字段到一个表,我想在数据库中更新相应的映射表,添加这个新字段......在 Visual Studio 菜单中我找到语音“更新模型从数据库”和“从模型创建数据库”,但我没有找到“从模型更新数据库”...

0 投票
0 回答
22 浏览

visual-studio - 生成的数据库与我的 edmx 架构不匹配

我在 Visual Studio 2017 和 Visual Studio 2019 (16.9.2) 上都试过这个。

我有一个过渡项目,所以我需要使用它的 edmx 文件生成数据库的本地副本。

这是生成的 edmx 映射的屏幕截图:

在此处输入图像描述

我也可以在我的模型浏览器上清楚地看到它:

在此处输入图像描述

但是当我尝试生成一个脚本来在我的机器上创建数据库的副本时(使用从模型生成数据库),它显然与上面的映射不同:

在此处输入图像描述

我认为这仅在AspNetUserRoles上是特别的,尽管与之相关的一些约束也会受到影响,所以我需要手动更改所有内容。

这是一个错误还是发生这种情况的任何原因?

0 投票
1 回答
38 浏览

entity-framework - 实体框架不会从数据库中检测外键

我有两张桌子 -AppointmentUser. 约会可以链接到两个不同的用户——一个学生和一个工作人员。该Appointment表包含两个外键:StaffUsernameExternalID。表中的这些引用列User命名为UsernameUser表的 PK)和ExternalID(一个 UNIQUE 索引)。以下是表定义:

不幸的是,当我在 EDMX 模型设计器中使用从数据库更新模型选项时,它不会获取ExternalID列上的外键。它仍然看起来像这样(绿色突出显示的是与正确建模的关系相关的属性,黄色是应该与第二个关系相关但被忽略的属性): 显示表之间缺少关系的 EDMX Designer 的屏幕截图

我从经验中知道 EDMX 设计器有时会很古怪,尤其是在检测对象更改时,所以我尝试了所有常用技巧。我检查了Web.config我的连接字符串指向正确的数据库。我已经完全删除了设计器中的AppointmentUser表并再次运行更新命令。我也尝试过在删除和更新之间保存并重新启动 Visual Studio。

为了检查数据库中的关系是否正确,我在 SSMS 中创建了一个数据库图,它正确显示了麻烦的关系:

显示 SSMS 数据库图中的表关系的屏幕截图

我还创建了一个全新的项目并添加了一个新的实体数据模型,该模型指向具有相同凭据的同一数据库,以防问题与我正在更新现有模型但没有骰子的事实有关。即使在新项目中,也没有检测到这种关系。

我也尝试手动创建导航属性,但从这个屏幕截图中可以看出,我需要选择的外键在下拉列表中不可用:

Visual Studio 中添加导航属性窗口的屏幕截图

我不知道这个问题是否与该ExternalID列不是User表的主键或它的NVARCHAR(10)数据类型有关。老实说,我不知道。

关于为什么没有检测到这个外键的任何建议?我该如何解决?我的项目以 .NET Framework 4.6 为目标,我正在使用 EF6。显然我使用的是数据库优先。

0 投票
0 回答
28 浏览

visual-studio - 在不使用 ADO.NET 实体模型设计器打开 edmx 文件的情况下获取“从数据库更新模型”和模型浏览器的替代方法?

edmx 文件需要很长时间才能加载。花了3.5分钟。这是一个问题。

我使用 ADO.NET 实体模型设计器打开 edmx 文件只是为了获得“从数据库更新模型”和模型浏览器。有没有办法在不打开 edmx 的情况下找到它们?我根本不需要看数据库图。但是,我确实需要不时查看模型浏览器来选择要删除的实体。

0 投票
0 回答
37 浏览

c# - 实体框架:如何基于现有属性添加关联

在实体框架中设置我的第一步时,我使用了数据库优先的方法。在我的 SQL Server 数据库中,我有两个表,Location并且Area.

两者都有一个Id列,并且Location表已经有一个AreadId属性。我想使用此属性在两个表之间创建一对多关联(Location一个条目的多个Area条目),因此我使用 EDMX 设计器在我的 EDMX 图中创建了以下内容:

EDMX 图截图

在自动生成的Location.cs文件中,如下所示:

我想使用已经存在的属性Location.AreaId作为外键。我怎样才能做到这一点,使用 EDMX-designer?

请记住,我可以修改 EDMX 图,但不能修改自动生成的Location.cs文件。

提前致谢

0 投票
0 回答
26 浏览

visual-studio - 更改新 EDMX 文件的默认 T4 模板

创建 EF 模型时如何强制 VS 选择自定义模板?

细节:

我构建了一个自定义模板,用于从模型生成 EF 实体类。该解决方案有许多具有自己模型的项目,并且随着时间的推移可能会添加更多。

为了防止以后出现bug,我想在以后创建EF模型的时候强制VS默认选择我的模板。我希望这是在解决方案级别,以便更改是存储库的一部分。

我将模板导出为 VS 项目模板,该模板基本上是默认值的克隆,并EF 6.x DbContextGenerator替换了适当的值。我可以使用模型设计器视图上的“添加代码生成项...”选项手动运行它。