问题标签 [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.
c# - 我可以从 edmx 模型更新数据库表吗?
是否可以从 edmx 模型更新数据库表,例如,如果我在 edmx 图中创建一个新字段到一个表,我想在数据库中更新相应的映射表,添加这个新字段......在 Visual Studio 菜单中我找到语音“更新模型从数据库”和“从模型创建数据库”,但我没有找到“从模型更新数据库”...
entity-framework - 实体框架不会从数据库中检测外键
我有两张桌子 -Appointment
和User
. 约会可以链接到两个不同的用户——一个学生和一个工作人员。该Appointment
表包含两个外键:StaffUsername
和ExternalID
。表中的这些引用列User
命名为Username
(User
表的 PK)和ExternalID
(一个 UNIQUE 索引)。以下是表定义:
不幸的是,当我在 EDMX 模型设计器中使用从数据库更新模型选项时,它不会获取ExternalID
列上的外键。它仍然看起来像这样(绿色突出显示的是与正确建模的关系相关的属性,黄色是应该与第二个关系相关但被忽略的属性):
我从经验中知道 EDMX 设计器有时会很古怪,尤其是在检测对象更改时,所以我尝试了所有常用技巧。我检查了Web.config
我的连接字符串指向正确的数据库。我已经完全删除了设计器中的Appointment
和User
表并再次运行更新命令。我也尝试过在删除和更新之间保存并重新启动 Visual Studio。
为了检查数据库中的关系是否正确,我在 SSMS 中创建了一个数据库图,它正确显示了麻烦的关系:
我还创建了一个全新的项目并添加了一个新的实体数据模型,该模型指向具有相同凭据的同一数据库,以防问题与我正在更新现有模型但没有骰子的事实有关。即使在新项目中,也没有检测到这种关系。
我也尝试手动创建导航属性,但从这个屏幕截图中可以看出,我需要选择的外键在下拉列表中不可用:
我不知道这个问题是否与该ExternalID
列不是User
表的主键或它的NVARCHAR(10)
数据类型有关。老实说,我不知道。
关于为什么没有检测到这个外键的任何建议?我该如何解决?我的项目以 .NET Framework 4.6 为目标,我正在使用 EF6。显然我使用的是数据库优先。
visual-studio - 在不使用 ADO.NET 实体模型设计器打开 edmx 文件的情况下获取“从数据库更新模型”和模型浏览器的替代方法?
edmx 文件需要很长时间才能加载。花了3.5分钟。这是一个问题。
我使用 ADO.NET 实体模型设计器打开 edmx 文件只是为了获得“从数据库更新模型”和模型浏览器。有没有办法在不打开 edmx 的情况下找到它们?我根本不需要看数据库图。但是,我确实需要不时查看模型浏览器来选择要删除的实体。
c# - 实体框架:如何基于现有属性添加关联
在实体框架中设置我的第一步时,我使用了数据库优先的方法。在我的 SQL Server 数据库中,我有两个表,Location
并且Area
.
两者都有一个Id
列,并且Location
表已经有一个AreadId
属性。我想使用此属性在两个表之间创建一对多关联(Location
一个条目的多个Area
条目),因此我使用 EDMX 设计器在我的 EDMX 图中创建了以下内容:
在自动生成的Location.cs
文件中,如下所示:
我想使用已经存在的属性Location.AreaId
作为外键。我怎样才能做到这一点,使用 EDMX-designer?
请记住,我可以修改 EDMX 图,但不能修改自动生成的Location.cs
文件。
提前致谢
visual-studio - 更改新 EDMX 文件的默认 T4 模板
创建 EF 模型时如何强制 VS 选择自定义模板?
细节:
我构建了一个自定义模板,用于从模型生成 EF 实体类。该解决方案有许多具有自己模型的项目,并且随着时间的推移可能会添加更多。
为了防止以后出现bug,我想在以后创建EF模型的时候强制VS默认选择我的模板。我希望这是在解决方案级别,以便更改是存储库的一部分。
我将模板导出为 VS 项目模板,该模板基本上是默认值的克隆,并EF 6.x DbContextGenerator
替换了适当的值。我可以使用模型设计器视图上的“添加代码生成项...”选项手动运行它。