假设我想用表A
替换表B
并将所有数据从一个迁移到另一个,所以我这样做:
B
A
格式到B
格式的整个数据副本进行转换
B
表中
A
醇>
问题是,有时您需要中断事务并执行从非A
格式到B
格式的非事务性转换,这甚至可能涉及对不同服务的调用(例如,新的地理政治来自A
的对象的状态,或来自A
的字段的不同序列化合同,将其从A
转换为B
或您想要更改{{1}中的数据的任何内容})。
所以,问题是,如何以任何理想的方式通过EF完成第2步 :
A
格式到A
格式的整个数据副本的转换 我的意思是不打破EF迁移文件的概念,并为我提供类似“Main”方法的东西作为我的迁移步骤的入口点。有什么建议吗?
答案 0 :(得分:4)
不幸的是,实体框架无法实现。迁移中可用的每个操作都将转换为稍后调用的SQL操作。 (通过这种方式操作,EF允许您将整个迁移过程编写为SQL文件,并在例如SQL Server Management Studio中运行它。)
因为SQL生成与调用它是分开的,所以不可能执行自定义C#/ Python /任何非SQL。
由于迁移仅允许SQL Server提供的功能(如果支持,则允许使用不同的DB),您可以使用CLR程序集或If InStr(CStr(Sheet2.Cells(i, 18)), CStr(IssueComboBoxStr)) > 0 Then
等功能,这些功能不是最直接的使用方法,但这样可以执行任何迁移代码