将 Entity Framework 4.1 Code First 应用程序迁移到生产环境需要进行哪些更改?

2024-02-08

正如所讨论的在这个线程中 https://stackoverflow.com/questions/5584546/ef-4-1-cf-create-database-permission-denied-in-database-master,Entity Framework Code First 适合开发环境。那么,需要对 Entity Framework Code First 应用程序进行哪些步骤或更改才能将其转移到生产环境?

  1. 将数据库迁移到生产服务器。
  2. 更改 Web.config 中的连接字符串

需要对 DbContext 初始化进行任何更改以防止其在生产环境中胡闹吗? (或者由于迁移的数据库中的数据库模式是正确的,因此它不会遇到麻烦吗?)还有什么要做吗?


这是一篇关于代码优先方法的精彩文章,包括底部的生产部署:http://msdn.microsoft.com/en-us/magazine/hh126815.aspx http://msdn.microsoft.com/en-us/magazine/hh126815.aspx

您可以使用诸如Red Gate 的 SQL 比较 http://www.red-gate.com/products/sql-development/sql-compare/分析您的开发环境和目标环境之间的差异,以构建允许 DBA 执行迁移的更改脚本。

您可能想做的另一件事是将名为“AppVersion”的实体添加到代码优先上下文中。然后,重写 DropCreateDatabaseIfModelChanges IDatabaseInitializer 的 Seed() 方法,以便它写入当前应用程序版本,或者可能使用连续构建写入源代码管理修订号。

Example:

public class OrderDbInitializer : DropCreateDatabaseIfModelChanges<OrderContext>
{
    protected override void Seed(OrderContext context)
    {

        context.AppVersion.Add(new AppVersion() {Version = Assembly.GetExecutingAssembly().GetName().Version.ToString()});
        context.SaveChanges();
    }


}

这样,您将始终知道哪个版本的代码与数据库关联。您还可以向 Seed() 方法添加更多代码,以创建开发人员在编写应用程序时需要使用的示例数据。

最后,您不想在生产中使用 DropCreateDatabaseIfModelChanges 初始值设定项,因此使用配置转换 http://msdn.microsoft.com/en-us/library/dd465326.aspx或者需要使用一些工厂模式。

希望能给您带来一些想法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Entity Framework 4.1 Code First 应用程序迁移到生产环境需要进行哪些更改? 的相关文章

  • SaveChangesAsync 不更新数据库表中的值

    这是我的桌子 统计数据 Id Depth RefreshCounter 样本记录 Id Depth RefreshCounter 1 1 1 2 1 0 3 1 0 4 1 0 现在我需要做的是 每当我刷新页面时 我需要在深度为 1 的数据
  • 具有自定义格式的 C# Generic DateTime.ToString() [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 使用时 DateTime ToString Contains 2016 实体框架产生 CAST DateValue AS nvarchar
  • 具有长期运行对象上下文的实体框架

    我对 WinForms 我敢说 WPF 中的 Linq to SQL 的主要烦恼之一是缺乏对长时间运行的数据上下文的支持 请参阅here http blogs msdn com dinesh kulkarni archive 2008 04
  • 了解 MVC-5 身份

    我创建了一个新的ASP NET MVC 5申请与Individual User Accounts然后更新了所有的Nuget packages在解决方案中 现在我尝试遵循一些教程中显示的一些指南 但遇到了一些问题 第一个是一个名为Applic
  • EF 6:映射复杂类型集合?

    EF 6 代码优先 是否支持复杂类型集合 值对象集合 映射 我知道它支持复杂类型 但还没有找到我们拥有复杂类型集合的示例 例如 假设您有一个名为 Student 的实体 其中包含联系人集合 对于 NH 我可以简单地说 Student 有一个
  • EF6“模型配置”已设置但未发现

    我有以下库 实体模型 dll 包含 POCO 类 实体DAL dll 引用EntityMODEL dll 实体服务 dll 引用 EntityMODEL dll 和 EntityDAL dll 实体测试 dll 引用 EntitySERVI
  • 实体框架中 1:1 关系中关联的主体端意味着什么

    public class Foo public string FooId get set public Boo Boo get set public class Boo public string BooId get set public
  • Breezejs 加载具有相关数据的实体时出错

    毫无疑问 我在这里遗漏了一些明显的东西 所以也许互联网的集体力量可以向我指出这一点 我有一个代码优先的数据库结构 由用户 组和一个链接两者的 GroupUsers 表组成 EF 本身可以处理 n n 关系 但 Breezejs 需要显式地使
  • LINQ 按降序排序,底部为空值 [重复]

    这个问题在这里已经有答案了 我有这样的表达 troubletickets db ServiceTickets Include t gt t Company Include t gt t UserProfile troubletickets
  • EF Core 迁移可以手动编辑吗?

    我在示例项目中使用 EF Core 2 0 和一些值对象配置 我修改代码并通过 CLI 命令行生成迁移 在最后一次迁移中 它没有像应有的那样添加新的数据库表 而是尝试将现有表彼此重命名并为现有表创建一个额外的表 我不明白其中的原因 问题是
  • 实体框架 4.1 代码优先外键 ID

    我有两个一对多引用的实体 当实体框架创建表时 它会创建两个外键 一个用于我使用 Fluent 接口指定的键 另一个用于 ICollection 如何删除重复的外键 public class Person public long Record
  • ASP.Net MVC 3,复杂对象和延迟加载

    首先 我是 ASP Net MVC 3 的新手 而且我也在使用 EF 4 1 我有一个复杂的对象 类似于包含类别对象的产品对象 所以我们有 Product CategoryId Product Category 和一些额外的属性 我还有一个
  • 实体框架中空值的左连接

    我需要使用实体框架在 C 项目中执行 10 次左连接 我已经检查了至少 10 个不同的页面和 stackoverflow 帖子来了解如何执行此操作 他们都没有工作 我当前的加入如下所示 from tbl1 in context tblNam
  • 使用 DbContext 进行模型优先,无法初始化新数据库

    我放弃 我找到了这个 http blogs msdn com b adonet archive 2011 03 15 ef 4 1 model amp database first walkthrough aspx http blogs m
  • .NET 实体框架核心

    我已经阅读了过去两年中发布的几乎所有有关 EF 的其他问题 我下载其他软件包没有任何问题 只是实体框架不会为我安装 我什至尝试安装最新版本的 Nuget 并在我的项目目录中使用它的工具来恢复包 之后 我将这一行添加到我的 csproj 中
  • WinForms 中的 EF:如何过滤 BindingSource/DGW 中的数据 (.Local.ToBindingList())

    我按照本教程生成了 EF 模型 首先是数据库 和数据源http msdn microsoft com en us data jj682076 aspx http msdn microsoft com en us data jj682076
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 忽略 Entity Framework 6 中除部分属性外的所有属性

    我想使用实体框架在数据库中保留一些数据 我有一些更大的 POCO 但我只想存储一些属性 我知道我可以通过Fluent API通过使用Ignore 方法 但是是否也有可能不仅忽略已定义的属性 而且还忽略除已定义属性之外的所有属性 所以如果你有
  • EF4如何在多对多关系中公开联接表

    假设我有以下表格 Essence EssenceSet 和 Essence2EssenceSet 其中 Essence2EssenceSet 仅保存前 2 个表的 ID 以形成 M M 关系 在 EF 中 由于 Essence2Essenc
  • 从数据库和文件系统中删除文件

    我有一个表引用我们网络上共享位置中的文件 将文件路径存储在数据库中 我有一个按钮需要从数据库中删除记录并从文件系统中删除文件 foreach var report in reports string filePath report Repo

随机推荐

  • 具有派生接口的 C# 接口实现

    在下面的示例中 类 SomeClass 没有实现 ISomeInterface 为什么我不能通过传递一个更派生的接口来实现这一点 该接口确实实现了基本要求 无论传递什么实例 它仍然会实现基础 我是否遗漏了什么 namespace Test
  • 搜索标签,然后将标签之间的文本保存为变量

    我对 Java 很陌生 但是我如何在文件中搜索标签 然后标签之间的所有内容 如文本字符串 将被分配给一个变量 例如 我有 但后来我想将字符串 THE TITLE 保存到一个名为 title1 的变量或其他变量中 我应该怎样做呢 谢谢 如果你
  • 结构赋值是否保证填充也相等

    假设我有一个包含 2 个字段的结构 并且我的 C 实现在这些字段之间也有一些填充 如果我创建结构体的两个变量并将一个变量分配给另一个变量 是否可以保证填充相等 我知道对于大多数编译器来说都是如此 因为它们只是调用 memcpy 但我想知道标
  • DB.eval() 与 Mongo Java 驱动程序

    我准备了一些在 Mongo 上执行的脚本 它按照命令行的预期工作 mongo 127 0 0 1 27017 dbName script js 但是当我尝试在 java scala 代码中移动它时 它不起作用 db eval scriptC
  • SQL Server 中 mysql“LIMIT”子句的等效语法是什么

    SQL Server 中 MySQL LIMIT 子句的等效语法是什么 我想用它来对我的结果进行分页 想要显示记录5到10 最接近的是 TOP Select top 5 from tablename 您可以获得一个范围 第 5 10 行 S
  • SAPUI5 路由配置中“controlAggregation”的含义是什么?

    我真的不明白下面的属性 controlAggregation 对于路由 SAPUI5 应用程序有何作用 不存在具有该 id 的元素 我在此处找到的演示应用程序中的任何位置都找不到对 页面 的任何引用 SAPUI5路由演示 https sap
  • java indexof(String str) 方法复杂性[重复]

    这个问题在这里已经有答案了 可能的重复 String indexof 函数调用的成本 复杂性是多少 https stackoverflow com questions 3562919 what is the cost complexity
  • 使用未声明的类型“PHAsset”BSImagePicker

    我在 swift 中从 CocoaPods 导入了一个模块 我做了所有需要做的事情 而且它也有效 因为模块已成功导入 我现在想测试 BSimagepicker 的一些演示脚本 但它显示未声明的类型 PHAsset 我需要做的是选择不同的图像
  • 如何在 Spark RDD 中比较不区分大小写的字符串?

    我有以下数据集 drug name num prescriber total cost AMBIEN 2 300 BENZTROPINE MESYLATE 1 1500 CHLORPROMAZINE 2 3000 想要从上面的数据集中找出
  • 以编程方式安装 Chrome 扩展程序

    我知道这个问题已经被问了很多 我读了所有这些 但找不到与我的问题相关的任何内容 所以再次询问 我做了一个简单的 chrome 扩展 还使用 chrome 将其打包为 crx 我想使用 nsis 或 C 安装程序以编程方式安装它 从这里得到一
  • 将 setDate 与 jQueryUi 日期选择器结合使用

    我正在尝试将另一个日期选择器的日期设置为距原始日期选择器关闭整整 1 年 我有以下代码 myDatepicker1 datepicker onClose function dateText inst myDatepicker2 datepi
  • 蟒蛇+igrph。类型错误:绘图不可用

    我想使用python笔记本 igraph包来画图 示例代码在这里 我认为是对的 pip install cairocffi import cairocffi as cairo corlor for i in g vs name if set
  • 适用于 Android 的 YouTube Api 异常“service_missing”

    我想在我的 Android 应用程序中播放 YouTube 视频 我在 YouTube 初始化时遇到异常 例如 service missing 我写下面的代码 package com example youtubedemo import a
  • 现在 Xna 不受支持,什么是更好的选择? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 节点 UnhandledPromiseRejectionWarning

    我的 npm 包有一个问题 就像这个问题 但我不知道如何解决 什么是未处理的 Promise 拒绝 https stackoverflow com questions 40500490 what is unhandled promise r
  • Android 手机中的部分唤醒锁功耗

    我正在创建一个远程服务来保持 PARTIAL WAKE LOCK 以便不断地 做一些后台工作 我预计 Android 设备的功耗范围是多少 由此 在我的设备上 从充满电开始测量 电池续航时间在 30 分钟到 2 小时之间 None
  • 如何使用 XMLHttpRequest 在后台下载 HTML 页面并从中提取文本元素?

    我想制作一个 Greasemonkey 脚本 当您在 URL 1 中时 该脚本会在后台解析 URL 2 的整个 HTML 网页 以便从中提取文本元素 具体来说 我想下载整个页面的 HTML 代码 a烂番茄page 在后台并将其存储在变量中
  • 如何将包含多个部分的 CSV 文件导入到 R 中?

    我想将csv文件的内容导入到R中 csv文件垂直包含多个数据部分 由空行和星号分隔 例如 SAMPLE DATA Name DOB Sex Rod 1 1 1970 M Jane 5 7 1980 F Freddy 9 12 1965 M
  • Android listview 带有复选框的问题

    我有一个奇怪的问题 我正在尝试创建一个带有复选框的列表视图 在我的另一个thread https stackoverflow com questions 5438375 custom listview with checkbox probl
  • 将 Entity Framework 4.1 Code First 应用程序迁移到生产环境需要进行哪些更改?

    正如所讨论的在这个线程中 https stackoverflow com questions 5584546 ef 4 1 cf create database permission denied in database master En