2013-11-23 4 views
1

Я создаю базу данных модели и пытаюсь сгенерировать свою схему MySql. Когда я нажимаю на «Создать базу данных из модели» он дает мне эту ошибкуОшибка создания базы данных Entity Framework

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.ttinclude

(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.

У меня есть MySql Connector версии 6.7.4 и Entity Framewiork V6.0.1 на Visual Studio 2012.

ответ

3

Я решил проблему, изменив SSDLToMySQL.tt на линии 121 от

string serverVersion = GetProviderManifestToken(edmxPath); 

в

string serverVersion = String.Empty; 

Похоже, что теперь находит правильный .edmx-файл.

+1

У меня была эта точно такая же проблема, ваше решение работало, вы камень! –

0

Я попробовал ответ Tristan Dube, но столкнулся с последними проблемами. Теперь у меня появилась рабочая конфигурация с EF6, mysql-connector-net-6.8.3 и mysql-visualstudio-plugin-1.1.1. MySQL-инсталлятор-сообщества 5.6.15.0 не предлагают либо из них, так что я нашел их на зеркале mysql.com: ftp://gd.tuwien.ac.at/db/mysql/Downloads/Connector-Net/mysql-connector-net-6.8.3.msi ftp://gd.tuwien.ac.at/db/mysql/Downloads/MySQLInstaller/mysql-visualstudio-plugin-1.1.1.msi

Смежные вопросы