首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#执行DbUp (过程)迁移

使用C#执行DbUp (过程)迁移
EN

Stack Overflow用户
提问于 2018-08-07 09:41:24
回答 1查看 644关注 0票数 1

使用DbUp,可以用C# (而不是SQL)编写过程迁移吗?

我意识到DbUp的一般理念是在SQL中完成所有事情,但在某些情况下,C#可能是更好的工作工具。

例如,假设您要在数据库中存储序列化的二进制blobs (忽略这是否是一个好主意),并且希望更改这些blobs的结构。您的应用程序代码具有反序列化/序列化这些blobs的技巧。通过SQL这样做可能是可能的,但通过C#实现可能会更简单。

有什么方法可以做到这一点(除了IScript)吗?基本上我是在寻找一种机制

  • 允许在事务上下文中对数据库发出任意命令。
  • 如果转换成功完成,请将“迁移”记录为已完成。

IScript似乎是最接近的东西--想知道是否有更好的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-07 10:49:24

是-见https://dbup.readthedocs.io/en/latest/usage/#code-based-scripts

基于代码的脚本(有时迁移)可能需要比在SQL中执行更容易或可能更多的逻辑。基于代码的脚本提供了在代码中生成SQL的工具,并提供了一个开放的数据库连接和一个System.Data.IDbCommand工厂。 基于代码的迁移是一个实现IScript接口的类。当要执行迁移时,将调用ProvideScript()方法,因此已经执行了之前的脚本。 当然,命令工厂不仅可以用于查询。整个迁移本身可以在代码中执行: 公共类Script0006UpdateInCode : IScript {公共字符串ProvideScript(Func commandFactory) { var命令= commandFactory();command.CommandText =“创建表dbo.Foo";command.ExecuteNonQuery();返回”;}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51723613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档