entity-framework - 从 VS 2012 发布到 Azure 网站时,我的 Entity Framework 种子数据未插入 SQL Azure

标签 entity-framework visual-studio-2012 entity-framework-5 azure-sql-database azure-web-app-service

我有一个使用 Entity Framework 5.0 和 Code First 的 ASP.NET MVC 应用程序。

我已使用 Visual Studio 2012 将我的网站发布到 Azure 网站。除了种子数据没有插入 SQL Azure 之外,一切似乎都正常;网站正常了,数据库建好了,但是种子数据是不是 插入。当我在本地机器上运行它时,一切正常。

根据我所看到的示例,从 Visual Studio 2012 发布时,有一个名为“执行代码优先迁移”的选项(见下图)。

enter image description here

但是当我尝试发布我的网站时,“执行代码优先迁移”选项是 不是 可用的。
enter image description here

我相信这可能与我的解决方案的配置方式有关。我有 3 个项目组成了我的应用程序。

  • 网站 – 这是一个 ASP.NET MVC 项目。它确实有一个引用 Entity Framework ,但所有数据访问代码 (DBContext) 都在数据项目
  • 中。
  • 域名 – 这是一个类库。它没有对 Entity Framework 的引用
  • 数据 – 该项目引用了 Entity Framework 。我有一个继承自 DbMigrationsConfiguration 的 Configuration 类。在
    这个 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/

    相关文章:

    c# - 无法在 .NET 中使用 C# 创建可缩放的 png 图像

    c# - 使用代码优先映射弱实体

    mysql - 关系数据库中的数据粒度

    sql-server - 如何将数据导入 Visual Studio 2012 Sql Server 数据库项目

    c# - 桌面 metro 应用程序

    c# - 使用 Web API, Entity Framework 如何知道对象中发生了什么变化?

    c# - EntityType 'Movie_Category_Map' 没有定义键。定义此 EntityType 的键

    c# - 阻止 Entity Framework 修改数据库

    entity-framework - 我们可以将现有实体用于 Entity Framework 而不是 EF 生成的实体吗

    c# - 如何建立这种 EF 关系?