问题标签 [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 投票
1 回答
65 浏览

visual-studio - VS2015 自动生成的代码格式不正确

我正在使用带有 Update 3 的 Visual Studio Professional 2015。我有一个包含我的数据库模型的 .edmx 文件。当我从数据库更新我的模型时,自动生成的代码格式不正确。

例如,以前我有类似以下内容:

我改变了我的机器,现在我有了:

我必须在我的 VS 配置中进行哪些更改才能解决此问题?

谢谢。

0 投票
0 回答
765 浏览

c# - 错误 3004:未为 Set 中的属性 Invoice.IdEx 指定映射

我得到这个编译错误:

错误 3004:映射片段中的问题:没有为 Set Invoices.IdEx 中的属性 Invoice.IdEx 指定映射 具有键 (PK) 的实体在以下情况下不会往返:实体类型为 [Models.Invoice] C:\Workspace\PrDomainModel\ EntityFramework\Model.edmx DomainModel

我尝试Invoice.IdEx在我的 edmx 中删除(此字段不再存在于我的数据库中)。但在那之后,ModelGenerator即使我运行自定义工具,我也是空的。

IdEx 是 FK,但不再有链接。

0 投票
1 回答
2997 浏览

c# - 我无法更新我的 edmx,因为实体数据模型设计器无法打开它

大家好,感谢您抽出宝贵时间查看我的问题。

我正在使用 Entity Framework 6 和 asp.net MVC 运行 VS 2017,并且必须向我的一个实体添加一些字段。

我在数据库中添加了相应的字段,但是当我打开 edmx 文件时,没有显示消息“实体数据模型设计器无法打开此文件”。它建议我在 XML 编辑器中打开它,但是右键单击 XML 文件时我没有“从数据库更新模型”选项。

有谁知道这是什么原因?

0 投票
3 回答
13690 浏览

mysql - Eroor "Could not load file or assembly MySql.data" when trying to add a new database connection

I'm trying to add a new MySql database connection. My version of MySql.Data is 6.9.9.0 and is referenced as this in my EFModel project's app.config and in the Nuget Package Manager of the project.

When I test it, the connection with my server is well established, but when I click on "OK" it displays an error:

"Could not load file or assembly 'MySql.data, Version=6.9.8.0, Culture=Neutral, PublicKeyToken=BigNumber' or one of his dependencies. The found definition of the assembly's manifest doesn't correspond to the reference of the assembly."

The issue is that this version is not wrote in my solution in any config files.

Here is my app.config file:

I'm struggling on this for 3 days but couldn't find any solution or related issue in SO or internet since every issues I found weren't about adding a new connection to a database nor about the version displayed on the error not listed in app.config which is my case. I really don't understand what can causes this.

Please help ! :/

0 投票
1 回答
373 浏览

c# - 生成 ef edmx 失败:由于对象的当前状态,操作无效

我试图在我的中添加一个 edmx 模型。连接到 Oracle 数据库的 Net 项目。

我已经为 vs2017 和 oracle 客户端 12.1 安装了 oracle 开发者工具。

在我设置连接字符串并想要生成 edmx 后,我收到一个错误:“由于对象的当前状态,操作失败”,我找不到解决方案。

我已经尝试重新安装 vs2017、oracle 客户端和 oracle 开发人员工具,但都没有工作..

先感谢您!

0 投票
1 回答
1958 浏览

c# - 如何使用 edmgen.exe 生成 .edmx.diagram 文件?

使用GitHub中提供的建议,我能够生成 ASP.net 项目所需的 EDMX 文件。使用如下命令:

但是,如果我们通过 ADO.Net 数据模型添加到现有项目中创建 EDMX,我不知道如何生成在 Visual Studio 中生成的随附edmx.diagram文件。

在解决方案资源管理器中,可以在如下位置看到该文件: 在此处输入图像描述

该文件也可以在 Visual Studio 中打开,以 UML 图的形式查看数据库结构,如下所示: 在此处输入图像描述

此外,为此生成的文件如下所示: 在此处输入图像描述

我也从官方文档中阅读了有关如何使用 edmgen.exe 生成 edmx 文件的文档

我相信 Microsoft 文档中遗漏了生成 edmx.document 文件的文档,我自己无法为此提出解决方案。我在这个问题上被困了很长时间,需要帮助来解决这个问题。

我使用了类似的机制来生成SQL2LINQ转换器项目中所需的文件。拥有这种能力可以提供极大的帮助。请帮我。

编辑 1: 我注意到 edmx.diagram 文件具有这样的属性。我不确定Visual Studio是否在内部使用其他一些可执行文件来生成图表文件,或者是否有一个未记录的标志可以通过命令行创建图表文件。请原谅我在最初发布问题时编辑此信息不可用。

在此处输入图像描述

编辑2: 我使用的过程中涉及的所有步骤:

Step1:将我的资源文件复制到我需要生成我的 edmx 和依赖文件的文件夹中。

注意:这些文件是虚拟文件,将从我粘贴在问题中的命令行命令生成。

第 2 步:通过导航到相同的路径运行命令行命令。

步骤 3:命令行运行后,从用户那里收集的连接字符串将有助于在同一目录中生成必要的 CSDL、SSDL 和 MSL 文件。然后读取文件并将其替换为我已包含在上面链接的资源文件夹中的 edmx 文件。

第 4 步:运行 textTransform.bat 文件以从 Texttransform.exe 的 Windows SDK 路径运行 texttransform.exe。

观察: 在此阶段,创建了 6 个文件中的 5 个,即:

  1. .context.tt
  2. .context.cs
  3. .Designer.cs
  4. .tt
  5. 。CS

对应于用户提供的名称。

但是文件 .edmx.diagram 丢失了。

执行步骤 1 到 4 的代码:

0 投票
6 回答
1830 浏览

asp.net-mvc - 概念类型中的成员数量不匹配 - 但确实如此

我突然开始在 .NET 4 MVC 项目中遇到以下错误。

概念类型“OrnaviModel.Task”中的成员数量与对象端类型“Ornavi.Core.Objects.Task”中的成员数量不匹配。确保成员数量相同。

该项目使用 EDMX 文件,该文件用于生成所需的数据对象。该项目上周运行良好,但是现在每当我向任何实体添加新字段时都会出现此错误。删除新属性会立即修复错误。

该字段也已添加到基础数据库表中,因此不应存在不匹配。

为什么我的文件突然停止正确生成?我试过“运行自定义工具”,但无济于事。我已经在单独的PC上尝试过,没有乐趣。如果我以 XML 模式打开 EDMX 文件,我可以看到新属性就在那里,同样,如果我浏览到生成的类,属性就在那里。

请帮忙..这让我发疯了!

编辑:我仍然没有得到答案,所以我将发布一些屏幕截图,看看它是否有帮助:

我修改了Tasks表,如下:

在此处输入图像描述

然后我单击“从模型生成数据库”以刷新基础对象。如果我展开 DataModel.edmx 文件并浏览到相关类,我可以看到新字段:

在此处输入图像描述

我也将该列添加到数据库中,但每次访问该页面时:

概念类型“OrnaviModel.Task”中的成员数量与对象端类型“Ornavi.Core.Objects.Task”中的成员数量不匹配。确保成员数量相同。

为什么这开始发生了?

我尝试了以下方法: - 在 edmx 上运行自定义工具 - 在不同的计算机上进行更改 - 尝试不同的表、列、变量类型

笔记本电脑上没有任何变化 - 相同版本的 Visual Studio,没有安装更新。

每次都是同样的问题。如果我删除该列,单击“从模型生成数据库”,它就可以正常工作了。重新添加,同样的问题。

请帮忙!这个项目的数据库结构很大,所以我真的不想重新创建整个东西!

在此处输入图像描述

0 投票
0 回答
117 浏览

c# - 实体框架/EDMX:TablePerTypeStrategy 没有完全实现?

这些是我使用实体框架 6.2.0 的第一步,目标框架是 4.6.1。

我正在使用“模型优先”的方法,基于 EDMX 模型为数据库结构自动生成实体类和 DDL 代码。对于此模型,使用了数据库生成工作流“TablePerTypeStrategy.xaml (VS)”,并且生成的 DDL 代码显示了许多表,正如人们所期望的那样。

但是,model.tt 下生成的代码文件中的实体类缺少 Table 属性,据我了解,这是使用 TPT 策略所必需的。我必须手动添加这些以使我的单元测试正常工作。

我错过了什么吗?还是 tt 文件实际上真的缺少生成该属性的代码?

更新:根据要求,这里是模型(一部分)的屏幕截图。

在此处输入图像描述

更新 2:这是使用的连接字符串:

0 投票
1 回答
455 浏览

c# - 如何生成 IDbSet 而不是 DbSet

我是新手C#EntityFramework我需要维护一个活跃的软件。我需要创建一个新表,所以我在数据库中创建了它,然后使用 EntityFramework 更新了我的模型。

但是,看起来以前的开发人员一直在直接在生成的代码(Mode.Context.cs类)中编写代码,并且EntityFramework在更新模型时正在擦除它并完全重写它。

所以我做了一个新的部分类模型。它看起来像这样:

生成的模型如下所示:

然而,问题是,以前,模型使用IDbSet而不是,DbSet界面IModel要求IDbSet<RandomTable> ARandomTable

处理这个问题的正确方法是什么?

0 投票
0 回答
44 浏览

c# - 如何知道外键的用途?

我从 SQL Server 生成了我的 .edmx,但我很困惑。

例如,我有一个UserProfile表,它的列包含Creator,ModifierDeleter

但在我自动生成的 .cs 文件中,只包含User1,User2User3.

我知道我可以通过在 .edmx 设置中更改表的 name 属性来将其重命名为User1Creator但恐怕如果User1实际上不是映射Creator而是ModifierorDeleter怎么办?

现在我通过知道外键遵循 SQL Server 中的顺序并且工作正常来使用我的表的关系,但我真的想知道它是如何工作的。

修改SQL Server表时有什么办法可以提前确定外表名吗?就像我在 SQL Server 中创建关系时可以修改名称一样。

下面是我的表的自动生成模型的示例:

我已经看到这个问题部分符合我的观点,但我需要它可以通过 SQL Server 表外键设置来确定,因为当我重新生成 .edmx 时它将恢复为默认值。

我的英语不好,请不要介意。

任何建议表示赞赏。