在实体框架迁移期间读取数据库(选择查询)

2024-03-10

我知道我可以使用Sql方法在迁移期间更新数据,对于可以用纯 SQL 表达的简单事物非常有用。

我也知道我可以使用Seed方法,但这感觉就像一个黑客(我想编写的代码必须在执行迁移时执行一次)。

在我当前的情况下,我需要从列中删除 HTML 标签,并将其写入迁移中添加的新列。我已经有一个 C# 方法可以做到这一点。我想要做的是迭代 C# 中的每一行,并为每一行生成一个 SQL 语句,该语句将使用相应的 HTML 删除文本更新该行。

更一般地说,我认为在迁移过程中能够用 C# 读取数据库在很多情况下会很方便。在迁移事务中执行此操作将是完美的,但为此我需要检索实体框架内部用于迁移的 SQL 连接。

到目前为止,我还没有找到执行返回结果的 SQL 查询的方法。这可能吗?


我还更喜欢通过种子方法转换迁移文件中的数据。

更新数据应该不是问题,您可以按照下面的行代码所示进行操作,也可以在 SQL 字符串中传递来自 C# 的参数:

Sql("UPDATE TableName SET MyValueInMinutes= -DATEDIFF(MINUTE, CurrentTime, 0)";

数据读取的问题!实际上,您永远不需要在 C# 中处理数据转换,通常您在 SQL Server 中创建所有内容(存储过程和函数以及 SQL 状态),并且您可以在需要时或在需要时从迁移文件中调用它们数据已准备好进行转换。但我认为你不是数据库程序员,这就是你尝试用 C# 处理数据的原因。

这是一个如何迭代行的示例,我将搜索给定的文本并为您找到一个免费的“AnyText”+计数器。

CREATE PROCEDURE sp_FindFreeName  
@toBeFindName nvarchar(MAX) OUT  
AS 
BEGIN 
DECLARE @LoopCounter INTEGER 
SET @LoopCounter = 1 
WHILE EXISTS (SELECT @toBeFindName FROM dbo.MyTable WHERE Name = @toBeFindName) 
  BEGIN 
      SET   @toBeFindName = 'AnyText', @LoopCounter) 
      SET @LoopCounter = @LoopCounter + 1 
  END 
END 

然后就可以调用C#表单了:

var cSharpName = string.Empty;
Sql("exec sp_FindFreeName @toBeFindName=@"+ cSharpName +" OUTPUT");

其中 cSharpName 由 C# 给出。

第三个原因是您还可以编写自己的 Code First 迁移操作。您必须按照 Rowan 博客中所述定义 SqlServerMigrationSqlGenerator:

https://romiller.com/2013/02/27/ef6-writing-your-own-code-first-migration-operations/ https://romiller.com/2013/02/27/ef6-writing-your-own-code-first-migration-operations/

结论:

如果您确实想读取迁移文件中的数据,那么您必须使用例如:SqlDataReader,并且还必须从 App.config 读取连接字符串。

在大多数用例中,您可以在 SQL Server 中执行所有操作。只需创建数据转换 SQL 脚本并从所需位置执行它们即可。

您可以使用扩展和 SqlServerMigrationSqlGenerator 以比 DataReader 更干净的方式执行此操作。

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

在实体框架迁移期间读取数据库(选择查询) 的相关文章

  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • yocto 中图像版本控制的最佳方法

    在 Yocto 中维护映像版本的最佳方法是什么 我的意思是假设我们构建一个图像并将其提供给客户 将来我们会向客户提供错误修复 我们如何知道客户正在使用哪个版本的 yocto 图像 有没有任何标准方法可以实现这一点 谢谢你的时间 赞赏你的努力
  • 在 for 循环中使用 bash wait [重复]

    这个问题在这里已经有答案了 我已经搜索过并期望以前有人问过这个问题 但找不到类似的问题 尽管有很多类似的问题 我希望这个 for 循环在 3 个不同的线程 进程中运行 并且wait似乎是正确的命令 for file in 1 txt 2 t
  • 我的实体加载速度超慢有什么问题吗?

    我有以下实体 Entity Table name Order public class Order Id SequenceGenerator name order id seq sequenceName order id seq alloc
  • std::tuple 与 std::array 作为 std::vector 的项

    我有这样一个案例 std vector lt 4 integers gt v 什么最适合这里 std tuple解决方案 std vector
  • JIT 编译器在角度更新后不可用

    我已经从 Angular 更新了 Angular 应用程序10到有角度的12 更新开发模式后工作正常 但在生产构建中我得到了 JIT compiler unavailable 错误 我已经进口了 angular compiler 在里面ma
  • xpath 在 div 元素中查找伪元素 ::after 且不带任何内容

    我正在尝试编写 xpath 来查找是否选中了一个复选框 该复选框正在使用 css after 元素进行更改 以下是我拥有的两个元素 div class FormBlock formItem2 and text Scoped In div c
  • 如何在 numpy Python 中启用和禁用 Intel MKL?

    我想测试和比较使用英特尔 MKL 和不使用英特尔 MKL 的 Numpy 矩阵乘法和特征分解性能 我已经使用安装了 MKLpip install mkl Windows 10 64 位 Python 3 8 然后我使用了来自的例子here
  • 范围内的最低值

    我想找到某个范围内的最低值 我每次都必须迭代数组还是有任何动态方法 假设我有输入数组 index 0 1 2 3 4 5 6 7 value 1 4 6 1 6 7 2 3 然后我必须选择范围 包括 中最小的 例如 min 0 7 1 mi
  • 将 MathML 复制到 Word 中以用作方程

    我可以成功地将使用 MS Word 2013 中的插入方程工具创建的方程以 MathML 格式复制到剪贴板 以便在其他地方使用 不过我主要需要导入到Word中 有没有办法将MathML格式的方程导入到word中作为方程使用 您是否刚刚尝试粘
  • 当我将 FusionTablesLayer 与 Google Maps JavaScript API v3 结合使用时出现空白页

    我使用融合表的数据准备了一个简单的页面 FusionTablesLayer 与 Google Maps JavaScript API v3 但不显示地图 您可以在此处查看该页面 http www siterary com 0test htm
  • Xamarin Forms 图像大小不匹配

    我正在使用 Xamarin Forms 实现一个跨平台应用程序 但我遇到了一个奇怪的错误 我正在尝试创建一个带有文本的按钮 为了实现它 我正在使用AbsoluteLayout 我已为每种 iOS 分辨率类型 png 2x png 3x pn
  • System.InvalidCastException:对象无法从 DBNull 转换为其他类型

    我的代码中有一个例外 我已经尝试将 int64 更改为 int32 但这并没有改变它 在数据库中 表示 column ID 的单元格的数据类型为 NUMBER 问题出在这段代码的第 7 行 private void dataGridView
  • 如何将 numpy.array 作为新列添加到 pyspark.SQL DataFrame 中?

    这是创建 pyspark sql DataFrame 的代码 import numpy as np import pandas as pd from pyspark import SparkContext from pyspark sql
  • 如何使 geom_line 和 geom_point 抖动相同的幅度?

    我有一个ggplot2具有显着重叠的两条线的折线图 我正在尝试使用position jitterdodge 这样它们就更明显了 但我无法以相同的方式让线条和点都抖动 我试图仅水平抖动点和线 因为我不想建议 y 轴上的任何更改 这是一个 MW
  • JQuery 选择框和循环帮助

    谢谢阅读 我对 jQuery 有点陌生 我正在尝试制作一个可以包含在我所有网站中的脚本来解决一个总是让我发疯的问题 问题 带有长选项的选择框在 Internet Explorer 中会被截断 例如 这些选择框 http discoverfi
  • glReadPixels 总是在 glClearColor 中返回相同的值

    我一直在努力理解 glReadPixels 的输出 它在理论上似乎很简单 但实际上产生了令人费解的结果 至少对我来说 假设我有一个简单的片段着色器 它绘制一个颜色值为 vec4 0 2 0 0 0 的三角形 而背景颜色设置为 0 3 1 0
  • 如何在 Vim 中根据光标下的字符在函数中执行某些操作?

    我正在编写一个在 LaTeX 中编辑特定环境的函数 环境基本上是这样的 begin quicktikz some stuff end quicktikz 或者像这样 begin quicktikz some stuff end quickt
  • Py3k 和 IPython

    我正在升级到 Python 3 但似乎找不到它的 IPython 版本 主要的IPython发布页面 http ipython scipy org moin Download没有列出任何合适的内容 任何让 IPython 为 Py3k 工作
  • 如何编写单元测试?

    我有一个Java课程 我怎么能够单元测试 http en wikipedia org wiki Unit testing it 就我而言 我让类进行二进制求和 需要两个byte 数组 对它们求和 然后返回一个新的二进制数组 我为两者提供这篇
  • 在实体框架迁移期间读取数据库(选择查询)

    我知道我可以使用Sql方法在迁移期间更新数据 对于可以用纯 SQL 表达的简单事物非常有用 我也知道我可以使用Seed方法 但这感觉就像一个黑客 我想编写的代码必须在执行迁移时执行一次 在我当前的情况下 我需要从列中删除 HTML 标签 并