2014-10-19 36 views
0

在本地開發EF codefirst應用程序後,我使用生成腳本從localdb複製了數據庫,並在azure上創建了一個新的應用程序。EF6.0代碼優先 - 更改連接

我添加連接字符串的配置文件是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" 
      providerName="System.Data.SqlClient" 
      connectionString="Server=tcp:XXXXXXX.database.windows.net,1433;Database=XXXXXX;User ID=XXXXXXXXXXX;Password=XXXX;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"/> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

當我嘗試調用一個對象,我得到這個異常:

"Invalid object name 'dbo.Banner'." 

DB連接是否正確。我可以連接到SQL Server Management Studio。 這段代碼有什麼問題? 手動創建數據庫是否會導致問題?

回答

-1

執行下面的代碼似乎表尚未創建。
部分指針:

您是否啓用了自動遷移功能?

AutomaticMigrationsEnabled = true; 

您可能更喜歡做手動更新/創建?
在這種情況下,選擇包含指向您的Azure的數據庫,並在Package Manager控制檯配置的項目:

更新數據庫

或者你可以和使用做在代碼MigrateDatabaseToLatestVersion initializer class

以下是參考一些額外的信息:
- MSDN: Code First Migrations
- ASP.NET: Code First Migrations and Deployment with the Entity Framework in an ASP.NET MVC Application

+0

更新數據庫的作品謝謝。首先我清除所有的app.config但連接字符串,然後遷移數據庫。 – pilavust 2014-10-19 19:34:43

+0

downvoter請讓我知道downvoting的原因嗎? – 2015-01-25 16:52:03

1

當您將數據庫還原到另一臺服務器時以及是否更改了數據庫用戶名時,會發生此問題。

要解決此問題,最好的方法是將所有SCHEMA更改爲dbo。

要更改架構通過您的MSSQL Enterpeise經理

ALTER SCHEMA dbo TRANSFER oldSchema.TableName