我有一个使用 Entity Framework 5.0 和 Code First 的 ASP.NET MVC 应用程序。
我已使用 Visual Studio 2012 将我的网站发布到 Azure 网站。除了种子数据没有插入 SQL Azure 之外,一切似乎都正常;网站正常了,数据库建好了,但是种子数据是不是 插入。当我在本地机器上运行它时,一切正常。
根据我所看到的示例,从 Visual Studio 2012 发布时,有一个名为“执行代码优先迁移”的选项(见下图)。
但是当我尝试发布我的网站时,“执行代码优先迁移”选项是 不是 可用的。
我相信这可能与我的解决方案的配置方式有关。我有 3 个项目组成了我的应用程序。
这个 Configuration 类我覆盖了 Seed 方法。
同样,这一切都适用于我的本地电脑。大多数情况下,一切都在 Azure 上运行;网站工作,数据库建立,但没有插入种子数据。
对于我的场景,当我从 Visual Studio 2012 发布时,是否有任何建议如何将种子数据插入到 SQL Azure 中?
最佳答案
您需要手动编辑 pubxml 文件 (Properties/PublishingProfiles/YourName.pubxml) 以显示复选框。我有一篇博客文章描述了这里的情况和解决方案:http://www.dominicstpierre.net/2012/11/enable-code-first-migrations-check-box.html
这部分需要手动更改
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="Namespace.Models.YourDBClass" Order="1" Enabled="True">
<Destination Path="your-connection-string-goes-here" />
<Object Type="DbCodeFirst">
<Source Path="DBMigration" DbContext="Namespace.Models.YourDBClass, AssamblyName" MigrationConfiguration="Namespace.Migrations.Configuration, Assambly" Origin="Convention" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
通过继承 DbContext 的类更改 Namespace.Models.YourDBClass,更改 Namespace.Migratins.Configuration 以适合您的迁移配置命名空间,并使用您的 Assambly 名称更改 Assambly。
保存并打开发布向导,您将看到该复选框。
关于entity-framework - 从 VS 2012 发布到 Azure 网站时,我的 Entity Framework 种子数据未插入 SQL Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211870/