可以使用实体框架反向工程代码首先与MySql一起使用吗?

时间:2012-12-28 02:41:32

标签: mysql visual-studio entity-framework

我正在使用Win 7 Ultimate SP1和EF Power Tools上的MS Visual Studio 2012 Update 1。

我正在尝试在MySql DB上使用实体框架的逆向工程师代码优先功能。我可以成功连接到数据库,但是当它尝试完成代码生成时,我会收到以下错误:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.DbContextPackage.Extensions.ProjectExtensions.InstallPackage(Project project, String packageId)
   at Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(Project project)

One or more errors occurred while processing template 'Entity.tt'.
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.CS.ttinclude(1,4) : error : A processor named 'T4VSHost' could not be found for the directive named 'CleanupBehavior'. The transformation will not be run.  The following Exception was thrown:
System.InvalidOperationException: Cannot find processor for directive 'T4VSHost'.
   at Microsoft.DbContextPackage.Utilities.EfTextTemplateHost.Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost.ResolveDirectiveProcessor(String processorName)
   at Microsoft.VisualStudio.TextTemplating.Engine.ProcessCustomDirectives(ITextTemplatingEngineHost host, TemplateProcessingSession session, IEnumerable`1 directivesToBeProcessed)

我无法使用google foo找到任何信息。

1 个答案:

答案 0 :(得分:4)

目前这是实体框架的 Active 错误。可以看到错误详细信息here

目前有2种解决方法,我使用的是下面的方法。

打开C#文件:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.CS.ttinclude

或VB.net:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.VB.ttinclude

删除第一行:

<#@ CleanupBehavior Processor="T4VSHost" CleanupAfterProcessingTemplate="true" #>