加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

实体框架 – 具有SQL Server Compact 4.0的实体框架6

发布时间:2020-12-12 16:54:13 所属栏目:MsSql教程 来源:网络整理
导读:我(仍然)试图遵循一个在线视频教程,介绍如何使用实体框架与代码优先的方法.就我的EDM验证是否正确,现在是实际构建数据库的时候了.教师使用SQL Server,显然当第一个查询命令(ToList())针对DbContext对象时自动创建数据库. 由于我计划在将来的应用程序中使用基
我(仍然)试图遵循一个在线视频教程,介绍如何使用实体框架与代码优先的方法.就我的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>

但是当我运行第一个查询命令时,我收到错误消息

Migrations is enabled for context ‘DataModelContext’ but the database does not exist or contains no mapped tables. Use Migrations to create the database and its tables,for example by running the ‘Update-Database’ command from the Package Manager Console.

当我运行更新数据库我收到消息:

No pending explicit migrations.
Applying automatic migration: 201310311356014_AutomaticMigration.
Running Seed method.

并且不创建数据库,至少程序仍然退出上述错误消息.

EF不会自动创建SQL Server CE数据库吗?如果是这样,如何连接手动创建的数据库与我的应用程序?

解决方法

通过在< configuration> -tag的末尾手动添加一个连接字符串到app.config文件可以解决这个问题:
<connectionStrings>
    <add name="DataModelContext"
         providerName="System.Data.SqlServerCe.4.0"
         connectionString="Data Source=C:UserssblxxxDocumentsVisual Studio 2012ProjectsPluralsightEF5CodeFirstdbcfdb.sdf"/>
  </connectionStrings>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读