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

entity-framework - 在对数据库进行逆向工程时改进导航属性名称

我正在使用 Entity Framework 5 和 Visual Studio 以及 Entity Framework Power Tools Beta 2 对中等大小的数据库(约 100 个表)进行逆向工程。

不幸的是,导航属性没有有意义的名称。例如,如果有两个表:

这将生成如下类:

我看到几个变体都比这更好:

  • 使用外键的名称:例如,最后一个下划线 ( FK_Projects_TechnicalContact--> TechnicalContact) 之后的所有内容。尽管这可能是控制能力最强的解决方案,但与现有模板集成可能会更加困难。
  • 使用外键列对应的属性名ID:去掉后缀(TechnicalContactID--> TechnicalContact
  • 使用属性名称和现有解决方案的连接:示例TechnicalContactIDProjects(集合)和TechnicalContactIDContact

幸运的是,可以通过将模板包含在项目中来修改模板

必须对Entity.tt和进行修改Mapping.tt。由于缺乏智能感知和调试的可能性来进行这些更改,我发现这很困难。


连接属性名称(上面列表中的第三个)可能是最容易实现的解决方案。

如何更改导航属性的创建Entity.ttMapping.tt实现以下结果

0 投票
1 回答
1120 浏览

oracle - 无法使用 EFPowerTools Beta2 VS2012 对代码进行逆向工程

我想首先使用 PowerTools 对代码进行逆向工程。当我从本地 MS-SQL 数据库而不是 Oracle DB 进行逆向工程时,它可以工作。我在输出控制台中收到以下错误:

我可以通过右键单击项目 > 添加 > ADO.NET 实体数据模型 > 选择“来自现有数据库”并按照向导的其余部分来正常生成 EF 文件。不过,我更喜欢 powertools,原因有几个(主要是映射为 .cs 文件)。为什么我在使用 Oracle 时不能进行逆向工程?TIA

0 投票
0 回答
157 浏览

entity-framework-4 - Entity Framework Power Tools Beta 2 出错网站

我的站点运行良好,然后我安装了 Entity Framework Power Tools Beta 2,现在该站点不再运行。看来这一定是运行时错误,因为VS 2012 IDE中没有错误。有 40 个与它创建的存储过程有关的警告,例如:

它指出:警告 1 SQL71502:过程:[dbo].[aspnet_AnyDataInTables] 对对象 [dbo].[sysobjects].[type] 的引用未解析。C:\xxxxx\documents\visual studio 2012\Projects\MyProjectName\dbo\Stored Procedures\aspnet_AnyDataInTables.sql 51 94 MyProjectAzure

它不喜欢“名称”、“sysObjects”和“类型”。在上面的代码行中。这发生在我反向工程名称时。但我似乎无法找出该网站出错的地方。其他人遇到过这个问题吗?

0 投票
1 回答
814 浏览

entity-framework - 实体框架、SQL Server CE 4.0 和 Code First 的启动性能问题

我在我的应用程序中使用实体框架 (EF) 5.0、代码优先方法和 SQL Server CE 4.0 数据库。但是,我在应用程序启动时面临一个主要的性能问题。

我在网上搜索,发现这篇文章解释了哪些操作会影响启动性能,其中一个是视图生成。因此,我研究了如何在编译时生成视图并在运行时将它们链接到 EF,而不是在运行时创建视图。我遇到了 Entity Framework Power Tools,它提供了一个命令来通过你的 DbContext 类生成视图。

如本文所述,我使用 Entity Framework Power Tools 在编译时生成了视图。但是,当我使用 SQL Server CE 运行我的应用程序时,它总是会生成以下异常:

EntityContainer 'DatabaseContext' 的映射和元数​​据信息不再匹配用于创建预生成视图的信息。

而相同的应用程序可以在 SQL Server 数据库中正常工作。因此,我进行了更多搜索,但没有找到解决此问题的方法。以下是人们报告类似性能问题的链接:

  1. MSDN 博客
  2. MSDN 上的实体框架论坛

我的问题是:“这个应用程序启动性能问题是否有解决方法或解决方案?”。我需要使用 SQL Server CE 而不是 SQL Server。

0 投票
1 回答
1732 浏览

visual-studio-2010 - 为什么当我想使用 EF Power 工具查看我的模型时出现错误?

我首先使用 EF 代码,然后通过 vs2010 中的“EF 4.x DbContext Fluent Generator for c#”扩展生成我的模型。但是当我想通过 EF Power 工具查看我的实体模型时,我收到此错误:“序列不包含匹配元素”。有什么想法吗?

0 投票
0 回答
107 浏览

.net - 自动生成预先生成的视图

EF Power Tools 有一个不错的选项,此处解释:“生成 EF 运行时使用的预编译视图以提高启动性能。将生成的视图文件添加到包含项目。如果您更改模型,那么您将需要通过再次运行此命令重新生成预编译视图。”

这个特性非常棒,因此我们可以在引导过程中节省多达 15 秒。现在我的问题是:我可以在重建上下文时强制自动生成吗?据此,我对分离实体程序集的传播方法有同样的问题(entities.tt 和 edmx 在不同的程序集中)。在这两种情况下,我都必须手动执行这些步骤......

0 投票
1 回答
511 浏览

entity-framework - PowerTools Beta 3 失败

我试图生成“视图”以提高我的应用程序的性能。该应用程序是通过 RIA 服务链接到服务器的 Silverlight 4。服务器应用程序从 EF 4.1 + RIA 服务开始。我安装了“EF Power Tools Beta 3 v0.7.0.0”并且可以毫无问题地生成我的视图。但我很快意识到 EF 4.1。无法从预编译的视图中受益。需要 EF >= 4.2。通过 NuGet,我看到了使用 EF 5 的 RIA 服务 (RIAServices.EntityFramework.4.2.0) 的更新。我安装并让一切正常,但是当我尝试生成视图时出现异常:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

我试过重新安装 PowerTools。运气不好,我已经下载了 PowerTools 的源代码并调试了异常。显然 PowerTools 正在尝试并且找不到旧的 EF 版本。LoaderExceptions 属性读取:

{System.IO.FileNotFoundException: Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.

我调查了 PublicKeyToken 并确认它与我的“bin”输出映射中的 EF 5 (EF 4.4 target=.NET 4) dll 相同。但是 PowerTools 正在寻找 EF 4.1 .. 为什么?

我的 web.config 文件有这个:

和:

我还测试了更改 Web.config 中的 PublicKeyToken 只是为了确认我从 PowerTools 收到另一个错误,因此 PowerTools 似乎解析了我的 Web.config。

0 投票
0 回答
276 浏览

c# - 数据库到实体命名转换

目前我正在使用 EF 5.0.0 和 EF Power Tools 3。我正在尝试首先使用逆向工程代码(Power Tools 3)从现有数据库进行逆向工程。可以在此MSDN 链接上找到执行此操作的示例。

这样做的唯一问题是我的数据库对象的名称。我的数据库对象使用小字和下划线作为空格,例如:item_cart。但是,我不希望将这种命名标准传递给我的 C# 应用程序。

然后我尝试调整模板以转换每个表/字段名称以遵循应用程序命名标准。这是我到目前为止所做的当前转换工具。

然后在 Entity.tt 中,我使用这个静态方法修改了模板。columnName = CustomConvention.SqlNameToEntityName(columnName);. 使用这种方法,我可以将表名从 转换item_cartItemCart足够好(虽然尚未测试)。

最后,这是我的问题:

  • 目前我无法将 .cs 文件名更改为遵循命名约定。所以它仍然保留为 item_cart.cs
  • 我的方法将来会出问题吗?
  • 有没有更好(标准/更清洁)的方法来做到这一点?
  • 除了这种逆向工程之外,将表(可能是视图和过程)映射到实体的最佳(最快和最干净)方法是什么?

可能的相关问题:解决 EF4 中的实体与我们的数据库标准之间的命名约定冲突?

0 投票
1 回答
402 浏览

c# - 结合 EF Power Tools 和 .edmx 生成 CodeFirst Class 和 DB

我使用此步骤在我的 MVC 项目中生成 CodeFirst 类:

1) 使用会员支持运行我的应用程序并调用使用会员资格创建会员默认表的 MVC 操作 (Membership,User,UserInRoles,...)

2) 将新的 .edmx 文件添加到我的项目并在向导中选择“从数据库生成”

3) 在 Visual Studio 中编辑 .edmx 文件中的数据库(添加新表)

4)在 .edmx 中使用“从模型生成数据库”创建新数据库

5) 使用带有“逆向工程师代码优先”的 Entity Framework Power Tools Beta 3

6) 删除现有数据库并调用使用我的上下文的 MVC 操作

这种情况有更简单的方法吗?

我收到此错误:

在表“UsersInRoles”上引入 FOREIGN KEY 约束“FK_dbo.UsersInRoles_dbo.Users_Users_UserId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束。请参阅以前的错误。

请指导我有关错误和任何简单快速的方法。

谢谢。

0 投票
2 回答
428 浏览

entity-framework-4 - 将另一个 t4 模板添加到逆向工程代码优先流程

我正在使用 Entity Framework Power Tools Reverse Engineer Code First 从数据库中生成我的 poco 类、映射文件和上下文。我还希望这个过程为每个实体创建我的基本部分验证类。我很擅长编写 t4 模板,但是当我运行逆向工程师代码优先流程时,有没有办法可以将它硬塞到流程中?