EF6.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。 这段代码有什么问题? 手动创建数据库是否会导致问题?
答
执行下面的代码似乎表尚未创建。
部分指针:
您是否启用了自动迁移功能?
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
答
当您将数据库还原到另一台服务器时以及是否更改了数据库用户名时,会发生此问题。
要解决此问题,最好的方法是将所有SCHEMA更改为dbo。
要更改架构通过您的MSSQL Enterpeise经理
ALTER SCHEMA dbo TRANSFER oldSchema.TableName
更新数据库的作品谢谢。首先我清除所有的app.config但连接字符串,然后迁移数据库。 – pilavust 2014-10-19 19:34:43
downvoter请让我知道downvoting的原因吗? – 2015-01-25 16:52:03