Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用LINQtoExcel和实体框架重新设计数据库,然后重新加载方法_Sql_Entity Framework_Ssis_Refactoring Databases_Linq To Excel - Fatal编程技术网

Sql 使用LINQtoExcel和实体框架重新设计数据库,然后重新加载方法

Sql 使用LINQtoExcel和实体框架重新设计数据库,然后重新加载方法,sql,entity-framework,ssis,refactoring-databases,linq-to-excel,Sql,Entity Framework,Ssis,Refactoring Databases,Linq To Excel,所以我有一些表格,里面有很多数据。假设它们是表A、B和C。我想为每个表添加自动增量ID字段,通过在表之间交换一些字段来规范它们,并添加一个额外的表D。有三个目标:1)重新设计数据库,并重新加载现有数据。2) 启用从电子表格加载数据以添加/编辑/删除四个表。3) 允许web前端添加/编辑/删除四个表 我目前的做法是: 我想我会将3个现有表格中所有数据的平面文件导出到csv(电子表格)中 然后重构数据库设计结构 然后使用linq to excel将csv电子表格记录读回dto对象 然后使用实体框架

所以我有一些表格,里面有很多数据。假设它们是表A、B和C。我想为每个表添加自动增量ID字段,通过在表之间交换一些字段来规范它们,并添加一个额外的表D。有三个目标:1)重新设计数据库,并重新加载现有数据。2) 启用从电子表格加载数据以添加/编辑/删除四个表。3) 允许web前端添加/编辑/删除四个表

我目前的做法是:

  • 我想我会将3个现有表格中所有数据的平面文件导出到csv(电子表格)中
  • 然后重构数据库设计结构
  • 然后使用linq to excel将csv电子表格记录读回dto对象
  • 然后使用实体框架将这些dto对象转换为实体,以使用表之间的适当关系更新数据库
  • 该电子表格将重新用于将来的批量数据添加/编辑/删除
下面的工具呢? SSIS 批量插入 存储过程

我把事情复杂化了吗?有更好的办法吗

你对“大量数据”的定义是什么?对一些人来说是10000行,对另一些人来说是数十亿行

我认为一些存储过程应该能够做到这一点,它们主要由简单的INSERT..SELECT语句组成。使用
sp_rename
重命名现有表,创建新表,然后移动数据

如果您已经必须开发一个批量导入过程,那么通过导出来实现重用可能是有意义的,但我不会仅为这个场景创建整个过程

在某些情况下,这种方法可能不是最好的,但我看不出你的问题中有任何东西让我认为这是一个问题


当然,首先要确保您有一个良好的备份。

数据的大小足够大,可以实现自动化,而不会太大,导致导出/导入出现问题。如果您添加了导入/导出过程,则只需再断开一个移动部件即可。现在,如果导出文件中的数据由于某种原因(带引号的字符串未正确处理或其他原因)出错,那么您将无缘无故地遇到额外的麻烦。