2016-10-24 26 views
1

NuGetで新しい移行スクリプトを生成しようとしています。 add-migration Initialと入力した後、次の応答が生成されます。注:私のプロジェクトはまだ私は私のGoogle Cloud SQLサーバーにconenctionを確立するために、この質問でガイドを追っている非適合初期化文字列、インデックス0

PM> add-migration Initial 
System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0. 
    at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue) 
    at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) 
    at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) 
    at System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String value) 
    at MySql.Data.MySqlClient.MySqlConnectionStringBuilder..ctor(String connStr) 
    at MySql.Data.MySqlClient.MySqlConnection.set_ConnectionString(String value) 
    at MySql.Data.MySqlClient.MySqlConnection..ctor(String connectionString) 
    at MySql.Data.Entity.MySqlConnectionFactory.CreateConnection(String connectionString) 
    at System.Data.Entity.Internal.LazyInternalConnection.Initialize() 
    at System.Data.Entity.Internal.LazyInternalConnection.get_Connection() 
    at System.Data.Entity.Internal.LazyInternalContext.get_Connection() 
    at System.Data.Entity.Infrastructure.DbContextInfo..ctor(Type contextType, DbProviderInfo modelProviderInfo, AppConfig config, DbConnectionInfo connectionInfo, Func`1 resolver) 
    at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext, DatabaseExistenceState existenceState, Boolean calledByCreateDatabase) 
    at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration) 
    at System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor(DbMigrationsConfiguration migrationsConfiguration) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Run() 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName, String language, String rootNamespace, Boolean ignoreChanges) 
    at System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name, Boolean force, Boolean ignoreChanges) 
    at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
Format of the initialization string does not conform to specification starting at index 0. 

...コンパイルし、エラーなしで実行されます。 Dynamic MySQL database connection for Entity Framework 6

私の接続文字列:

<add name="CCGamesGCloud.EntityFramework.Context" connectionString="Server=******;Database=*****;Uid=****;Pwd=*********" 
    providerName="MySql.Data.MySqlClient" /> 

マイEF列:

<entityFramework> 
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> 
    <providers> 
     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    </providers> 
    </entityFramework> 

コンテキストクラス:

public class Context : DbContext 
{ 
    public Context() : base("CCGamesGCloud.EntityFramework.Context") 
    { 

    } 

    public virtual DbSet<Developer> Developers { get; set; } 
    //... etc. etc... for all DBSets 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

     modelBuilder.Entity<Developer>(); 
     // other calls... etc here 
    } 
} 

のWeb.config XML最初の行:

<?xml version="1.0" encoding="utf-8"?> 

私は解決策の参照に必要なMySQLのdllファイルのを追加しました。私はこのトピックに関する他の多くの質問のように、私の弦にスペルミスを見ません。

+0

あなたは 'context'クラスを表示することができますか? – Sampath

+0

リクエストごとに追加されました。 – Chris

+0

'web.config'ファイルの最初の行を表示できますか?私はこれを意味する '<?xml version =" 1.0 "......' – Sampath

答えて

0

私が使用していた移行設定は、ローカルのSQLインスタンスを対象に初期化されました。私が使用していた接続文字列が通常のSQLではなくMySQLプロトコル用であったため、受け入れられない文字列形式のエラーがスローされました。

私は、特に私のカスタムコンテキストを対象とした移行を再度有効にしました。 MigrationsがMySQLのコンテキストと接続文字列を期待していたため、これによりエラーが発生しなくなりました。

私が使用:

Enable-Migrations -ContextTypeName MYCONTEXT -Force 
関連する問題