我有一个 MVC3 项目,到目前为止我一直在使用 SQL Compact Edition 进行开发。我现在正试图转移到在另一台机器上运行的 SQL Server 2008 R2。我已经用 Visual Studio 连接到这个数据库并获得了一个连接字符串,我用它来替换我现有的连接字符串。
<add name="CPContext" connectionString="Data Source=CSP111;Initial Catalog=CONTESTPLATFORM;Persist Security Info=True;User ID=sa;Password=<%MY PASSWORD%>" providerName="System.Data.SqlClient" />
<!--Old Connection String
<add name="CPContext" connectionString="Data Source=|DataDirectory|ContestPlatform.sdf" providerName="System.Data.SqlServerCe.4.0" />
-->
我正在使用初始化程序类为数据库提供一些初始值。这在我的 Global.asax.cs 文件中被调用,如下所示:
protected void Application_Start()
{
Database.SetInitializer<CPContext>(new ContestPlatformInitializer());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
现在,当我运行我的项目时,第一次尝试访问数据库时会引发异常。
Model compatibility cannot be checked because the database does not contain model
metadata. Model compatibility can only be checked for databases created using Code
First or Code First Migrations.
这是我主页上引发异常的代码:
IQueryable<Submission> submissions = db.Submissions.Where(s => s.ContestId == contestId && s.Entry.isPrivate != true && s.Entry.isApproved);
当我转到我的数据库时,没有创建任何表。实体框架的新手,帮助?