eoc*_*ron 11 c# sql-server entity-framework
假设,我想A
用table 替换table B
并将所有数据从一个迁移到另一个,所以我这样做:
B
通过SQL查询创建表 A
格式到B
格式的整个数据副本执行转换 B
通过SQL查询将所有内容放到表中 A
通过SQL查询删除表 问题是,有时你需要打破事务并进行从A
格式到B
格式的非事务转换,这甚至可能涉及对不同服务的调用(例如,对象的新地理政治状态A
,或来自的不同的字段序列化合同)A
,从7ZIP它A
到B
或任何你想要的改变有关数据A
).
所以,问题是,如何以任何理想的方式完成步骤2到EF :
A
格式到B
格式的整个数据副本进行转换 我的意思是不打破EF迁移文件的概念,并为我提供类似"主"方法的东西作为我的迁移步骤的入口点.有什么建议?
不幸的是,实体框架不可能做到这一点。迁移中可用的每个操作都会转换为稍后调用的 SQL 操作。(通过这种方式操作,EF 允许您将整个迁移过程编写为 SQL 文件并在 SQL Server Management Studio 等中运行)。
由于 SQL 生成与调用它是分开的,因此无法执行自定义 C#/Python/任何非 SQL 内容。
由于迁移仅允许 SQL Server(或不同的数据库(如果支持))提供的功能,因此您可以使用 CLR 程序集等功能,或者xp_cmdshell
这些功能不是最简单的使用方法,但这样就可以执行几乎任何迁移代码