问题标签 [entity-framework-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 回答
433 浏览

sql - 实体框架模型创建

使用实体框架时,基本上有两种方法可以创建模型。您可以在 SQL Server 或 Visual Studio EF 设计器中创建模型。这些概述如下。

从数据库开始

您首先在 SQL Server 数据库中创建模型,然后指向 EF 为您创建 .edmx 文件。通过使用这种方法,您可以使用 SQL Server Management Studio 创建所有模型和关系。

从 Visual Studio EF 设计器开始

这种方法是首先在 Visual Studio 中创建模型,然后从中创建您的数据库。通过这样做,您似乎不必太关心表格和关系。

这就是我所做的以及我这样做的原因

我首先使用 SQL Server Management Studio 创建我的模型。我这样做是因为我认为使用该工具更容易创建和修改表,而且我确切地知道正在创建什么。我通过将其指向我现有的数据库来创建我的 EF 模型。之后,我创建了一个Visual Studio 数据库项目,以便将我的数据库编写到我放入版本控制的文件中。当我需要进行更改时,我会更改数据库,然后更新我的 .edmx 文件以及我的数据库项目。

我想知道这些不同方法的优缺点是什么,决定使用哪种方法的标准应该是什么?我做错了吗?我应该先在 Visual Studio 中创建模型吗?

0 投票
1 回答
1092 浏览

entity-framework - 键和非键之间的一对一关系visual studio 2010图

嗨,我有这两张桌子:

我使用 Client 表中的 IdAccount 和 Account 表中的 IdAccount 创建一对一的关系。我读到只能在 Visual Studio 中完成键之间的一对一关系,在这种情况下是 IdClient-IdAccount,我怎样才能与 IdAccount 和 IdAccount 建立一对一的关系?如果我做一个,它会像 1 到 many =S

谢谢!

0 投票
3 回答
128 浏览

sql-server - 如何准备数据库以从中生成 EF 模型

我对如何在关系数据库结构中表示我的对象有一些误解。

例如,如果我有一个看起来像这样的简单表结构:

在此处输入图像描述

如果我基于它生成一个实体框架模型,它看起来像:

在此处输入图像描述

如您所见,它是多对多关联。(任何一道菜都含有很多配料,任何配料都可以用在很多菜里)

现在,如果我需要一些额外的参数,比如一道菜中配料的数量,该怎么办?(当然,任何不同菜肴中的每种成分通常都是不同的数字)。

如果我直接向Dish_FooIngridient表中添加一些额外的列,它会破坏自动模型生成的精确性,然后我必须在 EF 模型设计器中手动修复关联,然后使用一些繁琐的查询来操作对象。因为它会生成这样的东西:

在此处输入图像描述

如您所见,现在还有其他多余的属性,我不需要。有没有更好的方法来管理它?也许使用复杂的属性或继承的实体,或其他什么?

0 投票
1 回答
95 浏览

entity-framework - 使用函数导入时,EF 中的“更新”按钮对复杂类型有什么作用

在 EF 中,当您添加函数导入时,系统会要求您指定名称和 SProc。然后你可以决定返回(它可以是 None、Scalers、Complex和 Entities)。

当您选择复杂然后按下更新按钮时会发生什么?Update我想当我按下按钮时我搞砸了我的数据库。我恢复了然后没有按下它并且效果很好。

那么,更新是做什么的呢?

0 投票
1 回答
1663 浏览

entity-framework-4 - 将表添加到实体框架模型会导致 RPC “参数过多”错误

从设计器更新 EDMX 模型以在大型数据库上添加表时,输出窗口中返回错误:

由于以下异常,无法生成模型:'执行命令定义时发生错误。有关详细信息,请参阅内部异常。

传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。此 RPC 请求中提供的参数过多。最大值为 2100。'。从数据库加载元数据耗时 00:00:04.5149496。生成模型耗时 00:00:14.0108568。由于以下异常,无法生成模型:'执行命令定义时发生错误。有关详细信息,请参阅内部异常。

传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。此 RPC 请求中提供的参数过多。最大值为 2100。'。从数据库加载元数据耗时 00:00:04.2847682。生成模型耗时 00:00:06.1297751。

如何解决/解决这个问题?

0 投票
1 回答
181 浏览

visual-studio-2010 - 如何将属性添加到实体框架设计器中的属性窗口

有没有办法将自定义属性添加到实体实体框架设计器的属性窗口?我已经扩展了 T4 文件以自动生成一些存储库,但我只想在实体是聚合根的情况下这样做。我很想为实体添加一个 True/False “Is Aggregate Root”属性......

0 投票
1 回答
173 浏览

visual-studio-2010 - extension.vsixmanifest 的 Build Action 属性中没有 VsixContent 选项

我正在尝试创建一个实体框架设计器扩展并遵循Entity Framework 4 in Action 中的示例。本书提供了一个与此非常相似的示例。请注意第 6 步下的“注释”,他说将 Build Action 设置为 VsixContent。好吧,我没有 VsixContent 作为选项。有人对为什么会这样有任何想法吗?

谢谢

编辑:值得注意的是,没有生成 vsix 文件。 编辑:我重新安装了 VS2010 SP1 SDK 并重新启动。我现在看到了这个选项。但是,仍然没有生成 vsix 文件。

0 投票
3 回答
686 浏览

visual-studio-2010 - 实体框架设计器扩展未加载

我为 EF 设计器创建了一个小扩展,它向属性窗口添加了一个新属性。我使用 vsix 项目(新项目-> c#-> 可扩展性-> vsix 项目)做到了这一点。当我按 F5 时,实验性 VS 实例启动。我创建一个新项目,添加一个实体数据模型并添加一个实体。但是,我的断点永远不会被击中,我也看不到该属性。关于我可能做错了什么的任何想法?

编辑:我把代码放在 Github 上:https ://github.com/devlife/Sandbox

编辑:按照建议将 MEF 组件添加到清单后,扩展仍然永远不会加载。这是清单的图片:

VSIX 清单

0 投票
1 回答
498 浏览

visual-studio-2010 - 如何为 EF Designer 添加新的代码生成项?

谁能告诉我如何创建可供 EF 设计器用于“添加代码生成项”选项的项模板?我已经创建了项目模板,它就像一个梦一样工作!但是,我不知道如何让它显示在“添加代码生成项”对话框中。FWIW 我正在使用 VSIX 项目来部署项目模板。

0 投票
1 回答
124 浏览

c# - How do I filter results from an association table that is linked to only one other table?

So I can't figure out how to properly construct my EF query to get the rows I want. I'm only working with two tables here.

The Entity Framework designer creates this edmx diagram for my db structure. The loop at the top represents the association table that I'm having trouble filtering.

efgeoboundary

The SQL 2005 db diagram looks like this. The GeoBoundaryAssociation table has a many-to-many relationship from both of it's only two columns back to the GeoBoundary table's primary key GeoID.

enter image description here

I can write the SQL query to get the rows I want rather easily. I only need to pass one variable to get my results.

When I try to write my EF query I can't seem to filter rows from either of the two columns in the Association table. Any help would be greatly appreciated.

As a short term fix I have added an ID column to the GeoBoundaryAssociation table in order to get EF to generate an Entity so I can filter it directly. But I'm sure there must be a better way to do this.