我(仍在)尝试关注有关如何通过代码优先方法使用实体框架的在线视频教程。我的 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
我收到消息:
没有未决的显式迁移。
应用自动迁移:201310311356014_AutomaticMigration。
运行种子方法。
并且没有创建数据库,至少程序仍然退出并显示上述错误消息。
EF 不会自动创建 SQL Server CE 数据库吗?如果是这样,如何将手动创建的数据库与我的应用程序连接?