我仍在尝试跟随一份关于如何使用Entity Framework和Code First方法的在线视频教程。目前我的EDM已经成功验证,现在是实际构建数据库的时候了。讲师使用的是SQL Server,当第一个查询命令(ToList()
)针对一个DbContext对象执行时,数据库会自动创建。
由于我计划在未来的应用程序中使用基于文件的SQL Server Compact,因此我尝试使用SQL Server Compact 4.0复制教程示例。我安装了NuGet包“EntityFramework.SqlServerCompact”和“Micrososft SQL Server Compact Edition”。显然,这会在app.config
中添加一个新的提供程序条目:
<providers>
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
但当我运行第一个查询命令时,我收到了错误消息。
对于上下文“DataModelContext”,启用了迁移,但数据库不存在或不包含映射的表。使用迁移创建数据库及其表,例如通过从包管理器控制台运行“Update-Database”命令。
当我运行Update-Database
时,我得到以下消息:
没有未处理的显式迁移。
应用自动迁移: 201310311356014_AutomaticMigration。
运行种子方法。
并且没有创建数据库,至少程序仍然以上述错误消息退出。
EF难道不会自动创建SQL Server CE数据库吗?如果是这样,那么如何将手动创建的DB与我的应用程序连接?