【发布时间】:2017-01-23 14:29:44
【问题描述】:
我首先使用实体框架代码开发了一个非常简单的网络应用程序。经过数小时的挫折后,我意识到,尽管 localdb 是 SQL Server Express,但在使用“发布”(发布向导)时,它实际上并不意味着用于生产。仅供参考,我使用的是 EF 6.1.3、SQL Server 2014、VS 2013 和 IIS 7。
如果我理解正确,当您单击使用 localdb 发布时,您真正要做的就是将 localdb 数据库复制到 IIS 7 服务器。我不明白为什么当我通过 VS 迁移更新我的 lodaldb 数据库时,我的生产服务器数据库没有被更新。我理解(并且现在相信)它实际上是 localdb 的两个不同实例,因此不是相同的数据。
好吧 - 我已经完成了 localdb 并在我的机器上创建了一个真正的 SQL Server 2014 db。我已经用谷歌搜索了几个小时,现在不知道该怎么做。我有一些问题:
如何使用 EF 管理这个新数据库?例如,假设我想添加一个新列。首先,我将它添加到我的 localdb,进行一些测试,然后使用 Add-Migration blah 然后 Update-Database 进行迁移...然后我是否必须使用 VS 生成一个 SQL 脚本,然后在生产数据库服务器上手动运行它?
我知道这不是很好,但我可以不将本地数据库与实体框架一起使用,而是将 EF 附加到一个真正的暂存 SQL Server 数据库(一个测试数据库)并跳过所有这些 localdb 公牛*** *?那么我可以使用代码优先迁移来管理它并保持一切同步吗?
-
我应该使用初始化程序吗?我已经阅读了关于是否将这些用于生产数据库(比如这个)的相互矛盾的报告
公共类 PricedNotesInitializer: MigrateDatabaseToLatestVersion<...> { }
令人沮丧的是,我了解这些东西的唯一方法是通过其他人的博客文章感到沮丧。我不明白为什么文档这么垃圾。
感谢您的帮助,对咆哮感到抱歉。
【问题讨论】:
标签: c# mysql sql-server database entity-framework