如何结合代码优先和数据库优先方法

2023-12-12

假设我是一家公司的新开发人员。所以该项目已经有一个现有的数据库。为了处理这个项目,显然我需要搭建现有的数据库(数据库优先方法),它可以生成模型类供我处理。

因此,我开始处理该项目,并希望向表中添加一个新列,因此我在模型类上添加一个新属性,然后我想在数据库中应用此更改。因此,我通过添加新的迁移并更新数据库切换回代码优先方法。

但问题是,如果我添加一个新的迁移,EF 将在迁移的 UP 方法中包含所有数据模型类,以在数据库中创建所有相应的表,因为 EF 认为所有模型类都是我新添加的。那么如何才能仅通过添加新列来更新表而不重新创建所有其他表呢?


1) 从现有数据库对模型和数据库上下文进行逆向工程。请点击此链接,https://learn.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db

2)现在您拥有模型和数据库上下文。除了迁移之外,您的数据访问应该可以在新上下文中正常工作。

3)现在您已经创建了数据库和表,您需要调整数据库以假装当前模式是使用迁移创建的。

3.1) 首先创建初始迁移Add-Migration IntitialCreate。它将包含创建当前级别数据库的代码。

3.2) 现在您应该手动创建 __MigrationHistory 表并手动将 IntialMigration 插入该表,这样它就不会再次尝试应用它。如果您发现手动执行此操作很难,那么有一个技巧。

只需更改连接字符串中的数据库名称并执行即可使用当前迁移创建新数据库update-database。在创建的新数据库中,应使用已应用的 InitialCreate 迁移来创建 __MigrationHistory 表。生成创建脚本和数据并在原始数据库中执行该脚本。

4) 现在您可以对模型进行其余的更改,创建新的迁移并照常应用它们。

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

如何结合代码优先和数据库优先方法 的相关文章

  • 实体框架 - 悲观锁定

    我想做的基本上是NHibernate 做什么 http knol google com k nhibernate chapter 10 transactions and concurrency 10 282E 296 282E 29 28C
  • 当 edmx 文件位于单独的项目中时出错

    我有问题说 在配置中找不到指定的命名连接 或者不打算与EntityClient提供者 或无效 我的 edmx 文件位于单独的项目中 但该项目的连接字符串app config 什么可能导致问题 确保 app config 位于设置为启动项目的
  • 使用 DI 将参数传递给 DbContext

    我想向 DBContext 传递一个附加参数 如下所示 string myParam xx string con connenctionstring services AddDbContext
  • 如何在 MVC4 的 UserProfile 中创建自定义附加字段

    我遇到了新的 ASP MVC 4 功能 它附带了新的成员资格数据库模式和新的初始化 在 mvc 3 和旧版本中 开发人员能够使用 web config 中的规范创建自定义用户配置文件字段 但现在我面临默认 mvc 4 项目中过滤器命名空间中
  • 找不到实体框架数据提供程序,entityclient

    首先 我发现许多问题和许多答案与我的问题相关或被认为与我的问题相同 但似乎没有什么对我有用 我有一个全新的模板化 MVC4 网站 全新安装的 sql server 2008 r2 中有一个全新的数据库 我在数据库上运行 aspnet reg
  • 将大量实体插入 SQL Server 2012 [重复]

    这个问题在这里已经有答案了 我正在进行一个使用 Entity Framework 5 和 SQL Server 2012 的项目 我们需要一次插入大量行 100k 个实体的顺序 基本上 我们有一个物理程序 它输出大量二进制数据 然后我们需要
  • asp.net mvc 4 - 可以在每个线程共享 DbContext 吗?

    From 每个 Web 请求一个 DbContext 为什么 https stackoverflow com questions 10585478 one dbcontext per web request why 我的理解是 DbCont
  • 带有自定义鉴别器的 EntityFramework Code First 继承

    我正在尝试在 EntityFramework Code First 中映射以下继承 public class Member public string ProjectName get set public string AssemblyNa
  • 不支持 EF6 上下文类型“System.Data.Entity.Core.Objects.ObjectContext”

    我有一个使用 Visual Studio 2013 和 ADO NET 实体数据模型 EF6 创建的新项目 现在我必须使用一些动态数据函数 例如访问 MetaTable 对象 所以我添加以下代码 MetaModel model new Me
  • 从数据库和文件系统中删除文件

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

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 将平面集合转换为层次集合的递归方法?

    我已经被这个问题困扰了几天 希望得到一些想法或帮助解决它 我有一个对象集合 public class Hierarchy public Hierarchy string iD string name int level string par
  • 脚手架 EntityFramework 6 无法将“System.Data.Entity.Core.Objects.ObjectContext”类型的对象强制转换为“System.Data.Objects.ObjectContext”

    我想在 EntityFrameWork 6 中使用脚手架 但是得到这个 无法检索 myNameSpace Models prod 的元数据 无法将 System Data Entity Core Objects ObjectContext
  • 返回带有列表对象的列表对象

    我有三个表 汽车品牌 汽车型号 和 CarsandModel 我有 Carsand 模型表 因为一个模型可以由多个制造商构建 我想返回包含汽车型号列表的汽车品牌列表 我现在的长篇大论不是过滤汽车型号的汽车制造商列表 我尝试添加一个 wher
  • 包管理器控制台中缺少文件错误

    我们的开发团队的一些成员在打开包管理器控制台时开始看到以下错误 它完全阻止我们运行实体框架命令 我们已经检查过并且提到的文件确实存在 GetEvent types ps1xml Diagnostics Format ps1xml Diagn
  • 提供者未返回 ProviderManifest 实例

    当我想配置我的数据源 EntityDataSource 1 并将实体数据模型自动生成的连接字符串分配给它时 我收到错误 无法加载连接字符串中指定的元数据 请考虑重建 Web 项目以构建可能包含元数据的程序集 发生以下错误 提供程序未返回 P
  • 用于开发和生产的不同种子

    根据构建配置 调试 发布 使用实体框架 6 以不同方式为数据库设定种子的推荐方法是什么 现在我正在使用 MigrateDatabaseToLatestVersion 初始值设定项 在开发过程中 我喜欢在数据库中使用虚假数据进行测试 因此 我
  • 关于实体框架上下文生命周期的问题

    我对 ASP NET MVC 应用程序中实体框架上下文的所需生命周期有一些疑问 让上下文在尽可能短的时间内保持活动状态不是最好的吗 考虑以下控制器操作 public ActionResult Index IEnumerable
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数

随机推荐

  • 这些对象的引用是在栈上还是在堆上?

    如果有人能告诉我我是否理解得很好 我将不胜感激 class X A a1 new A reference on the stack object value on the heap a1 VarA 5 on the stack value
  • 自定义形状的边框

    在这里摆弄 我正在尝试设置一些不规则形状的边框颜色 箭头ish 我做到了 问题是 为了实现这些形状 我必须已经操纵边框 所以我不能这样做border color red 我想将每个形状的边框颜色设置为2px HTML div class m
  • 未报告的异常UnknownHostException;必须被抓住或宣布被扔出

    我有下面给出的代码 但是 当我尝试编译代码时 出现以下错误 MyClient java 12 error unreported exception UnknownHostException must be caught or declare
  • 如何在java中从图像中获取光栅?

    我正在尝试将 gif 图像从 url 加载到 java util image Raster 中 以便我可以操作它 我能找到的加载和解压缩图像的唯一方法是 Toolkit getImage 它返回 java awt Image 我需要将其转换
  • 如何在您的网站中使用长轮询或 Ajax 推送

    我想知道如何使用ajax推送 我从各种网络文章中了解到 Ajax推送可以通过使用一些程序来获得 例如COMET APE AJAX PUSH ENGINE 等 但我想知道是否有更简单的使用方法以及使用什么语言实现ajax推送 因为在我看过的文
  • Ruby on Rails 中多对多的正确实现?

    新手提问 请注意 我想在 Rails 中实现基本的多对多关系 并且我试图找出哪种方法被认为是其中最 Rails 方式 在传统的非 ActiveRecord 数据库中 我刚刚创建了两个表和一个联结表 并编写了一堆逻辑 以确保在对其中任何一个表
  • PHP:根据季节设置图像?

    大家好 你对此有何看法 我想根据是冬季还是夏季在我的网站上设置一个标题图像 一个用于冬季 一个用于夏季 所以我想知道最简单的方法是什么 我想到使用 date n 并查询返回的值对于冬季或夏季月份是否为真 你会怎么办 谢谢你的提示 谷歌搜索并
  • 片段之间的通信

    我有默认的主从流程 该流程是在创建新项目时自动创建的 我的问题是 当我向详细信息侧添加按钮时 有没有办法通过按该按钮来更新我的列表面 换句话说 ItemDetailFragment 和 ItemListFragment 可以通信吗 是的 只
  • Android 中的加权热图

    我正在尝试为我的 Android 应用程序项目创建一个加权热图 我查看了谷歌文档 我不明白如何使用颜色数组和起点数组创建新的渐变 起始数组表示为 每种颜色的起点 以最大强度的百分比形式给出 这是什么意思 如何将颜色数组与起点数组关联起来 i
  • 如何在 ionic 4 中隐藏滚动条上的标题?

    我想知道如何通过向下滚动页面来隐藏 Ionic 4 中的标题 并在向上滚动时重新显示它 我找到了许多关于如何做到这一点的解决方案 但结果都证明它们不起作用或已经过时了 因此 我收集了我能找到的所有信息来提供这个答案 谢谢这个视频我让它工作了
  • 以html形式输入Integer时抛出BadValueError

    我正在使用 Python 创建 Google App Engine 应用程序 为了测试我的应用程序 我使用 html 表单输入数据 在我的表格中我有一行 tr td Age td td td tr
  • PHPStorm 8 + PHPUnit 4.2.6 错误

    我做不到PHPUnit 4 2 6跟 共事PHPStorm 8 PHPUnit 在 PHPStorm 8 设置中作为 phar 加载 每当我尝试在 PHPStorm 中运行单元测试时 我都会收到此错误 Parse error syntax
  • 将输出重定向到文本文件c#

    这是我的代码 Process pr2 new Process pr2 StartInfo FileName show snps pr2 StartInfo Arguments Clr x 2 out delta gt out snps pr
  • 转换后的 PDF 中缺少文档中替换的文本

    我从 Google Apps 脚本开始并尝试创建文件 Google Doc 的副本 然后替换复制文档中的文本并将其转换为 PDF 该功能工作正常 但替换的文本不会出现在 PDF 文件中 而是出现在复制的文件 我替换的位置 中 我读到了关于s
  • 角度数据表列可拖出表格

    是否可以避免该列 而不是拖出数据表视图区域 正如您可以自己看出的那样 我从此链接中谈论的内容https l lin github io angular datatables withColReorder when you try to dr
  • 是否存在禁用 file_get_contents() 函数工作的机制?

    i use file get contents 函数从站点获取数据并将数据存储在数据库中 如果有一天脚本开始不起作用 这对我来说将非常不方便 我知道 如果他们改变网站的结构 它可能会开始不起作用 但现在我担心 也许有机制可以禁用此功能的工作
  • Android 模拟器无法访问互联网

    我无法在模拟器中访问互联网 它甚至无法在模拟器浏览器上连接到谷歌 我已经检查过设置 数据已启用复选框已选中 在发布问题之前我提到了一些SO问题 As 这个答案建议 我没有启用 wifi 所以这似乎不是问题 作为另一个答案在同一个问题中 我尝
  • IBM Worklight - 连接/重新连接:WL.Client.connect 与 connectOnStartup 与 WL.Client.invokeProcedure

    在我们的项目中 我们试图弄清楚连接到服务器的最佳流程是什么 特别是在处理离线 在线场景等时 现在 对于我们来说 连接到 WL 服务器的所有三个选项似乎都是相似的 无论我们使用什么选项 我们都可以完美地调用我们的适配器过程 并且我们会收到在控
  • 使用 SendInput 发送两个或多个字符

    要发送字符 我们可以使用 SendInput 我如何使用它来发送多个字符 我尝试了这段代码 但它没有发送任何内容 INPUT in in type INPUT KEYBOARD in ki wScan 0 in ki time 0 in k
  • 如何结合代码优先和数据库优先方法

    假设我是一家公司的新开发人员 所以该项目已经有一个现有的数据库 为了处理这个项目 显然我需要搭建现有的数据库 数据库优先方法 它可以生成模型类供我处理 因此 我开始处理该项目 并希望向表中添加一个新列 因此我在模型类上添加一个新属性 然后我