C# 实体框架数据库生成错误
我正在创建一个模型优先数据库,并尝试生成我的MySql模式。当我点击“从模型生成数据库”时,它给出了这个错误C# 实体框架数据库生成错误,c#,mysql,entity-framework,C#,Mysql,Entity Framework,我正在创建一个模型优先数据库,并尝试生成我的MySql模式。当我点击“从模型生成数据库”时,它给出了这个错误 Encountered the following errors while processing the template 'E:\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen\SSDLToMySQL.tt: Line 141, Column 0:
Encountered the following errors while processing the template 'E:\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen\SSDLToMySQL.tt:
Line 141, Column 0: 'Running transformation: System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.VisualStudio.TextTemplatingE384461094E1DFC8313DC1AA4CE547BEB91411CCECC4E940B2CAA4A167C5F68F403F4103FA7B7E1BB1B4B97B86595FBABCAF62EA3385ABAA9AF47E060E49D857.GeneratedTextTransformation.GetProviderManifestToken(String edmxPath) in e:\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen\GenerateMySQL.Utility.ttinclude:line 142
at Microsoft.VisualStudio.TextTemplatingE384461094E1DFC8313DC1AA4CE547BEB91411CCECC4E940B2CAA4A167C5F68F403F4103FA7B7E1BB1B4B97B86595FBABCAF62EA3385ABAA9AF47E060E49D857.GeneratedTextTransformation.TransformText() in e:\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen\SSDLToMySQL.tt:line 121'
我去检查了参考文件,不知道该怎么办。以下是目标行的文件内容
GenerateMySQL.Utility.t包括
(142 -->) foreach (var node in xmlDocument.SelectSingleNode("/edmx:Edmx/edmx:Runtime/edmx:StorageModels", namespaceMgr).ChildNodes)
{
if (((XmlNode)node).Name.Equals("Schema") && ((XmlNode)node).Attributes.GetNamedItem("ProviderManifestToken") != null)
{
return ((XmlNode)node).Attributes["ProviderManifestToken"].Value;
}
}
return String.Empty;
SSDLToMySQL.tt
EnvDTE.DTE env = (EnvDTE.DTE)((IServiceProvider)this.Host).GetService(typeof(EnvDTE.DTE));
(121 -->)string serverVersion = GetProviderManifestToken(edmxPath);
string connection = String.Empty;
我知道它以前能用,但现在它给了我这个错误。这是一个非常简单的模式,3个带有字符串和Int32的表,以及一些关系。项目是空的,除了Mysql连接的初始设置外,没有做任何修改
我在Visual Studio 2012上安装了MySql连接器版本6.7.4和Entity Framewiork v6.0.1。我通过将第121行的SSDLToMySQL.tt从
string serverVersion = GetProviderManifestToken(edmxPath);
到
看起来它现在找到了正确的.edmx文件。我尝试了Tristan Dube的答案,但后来遇到了问题。我现在似乎有了EF6、mysql-connector-net-6.8.3和mysql-visualstudio-plugin-1.1.1的有效配置。mysql-installer-community-5.6.15.0没有提供这两个版本,所以我在mysql.com的镜像上找到了它们:
我遇到了完全相同的问题,你的解决方案奏效了,你真是棒极了!
string serverVersion = String.Empty;