2016-10-20 151 views
1

我在本地機器上使用Visual Studio開發了一個新的.Net應用程序。我創建了一個Google Cloud SQL實例來存放數據庫。我試圖在服務器上建立一個代碼優先的實體框架數據庫,並且遇到連接問題。無法連接到GCloud SQL

我按照谷歌提供的指南(糟透了,因爲它),並且在Web.config文件中設置連接字符串時陷入困境。 指導: https://cloud.google.com/dotnet/getting-started/using-cloud-sql

我已經將我的IP添加到雲端SQL接受的連接。 我對默認Web.config文件進行的僅有更改爲:

1)註釋掉現有的連接字符串。替換爲 2):

<add name="CCGamesGCloud.EntityFramework.Context" connectionString="Data Source=tcp:###.###.##.###;Initial Catalog=CCG-GamesDB;User ID=####;Password=########" 
    providerName="System.Data.SqlClient" /> 

上面用個正確的IP和登錄到位****的信息,名稱爲DB上下文的位置

我缺少具體的appSettings配置重點/值?

試圖查看服務器資源管理器中的連接時出現以下錯誤。 http://imgur.com/a/6DyYv

有人可以指出我在正確的方向嗎?我一直在谷歌搜索幫助博客過去一小時,但谷歌似乎喜歡給自己愚蠢的指導作爲我做的每一個搜索的最高結果。

Context類:

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 
    } 
} 

回答

1

我需要使用谷歌自己的語法的連接,而不是默認或MySQL語法。下面的連接字符串工作。我希望這能幫助別人。

<add name="YOUR_NAME_HERE" connectionString="Server=***.***.**.***;Database=YOUR_DATABASE_NAME;Uid=YOUR_USERNAME;Pwd=YOUR_USER_PASSWORD" providerName="MySql.Data.MySqlClient" /> 
+0

見下面鏈接,產生額外的幫助,任何基於MySQL的鏈接: http://stackoverflow.com/questions/20277677/dynamic-mysql-database-connection-for-entity-framework-6/20294903#20294903 – Chris