【问题标题】:Where to migrate data from SQL Server?从 SQL Server 迁移数据到哪里?
【发布时间】:2012-09-06 23:32:43
【问题描述】:

我正在开发一个以前使用 EF、SQL Server、C# 和 WinForms 开发的应用程序。由于某些原因,我们需要删除 SQL Server 并使用一些数据并将数据放入其他容器中,例如 XML、Excel 表或内存类中。

DAL 是使用带有存储库和 UOW 模式的 EF 设计的。您能否建议我什么是最好的迁移方式以及什么格式可以轻松传输数据?

【问题讨论】:

  • 您需要完全删除 RDBMS,还是可以将 SQL Server 换成另一个 RDBMS?还是您只需要生成导出数据?出于显而易见的原因,我不建议使用 XML 或 Excel 或类似的东西进行存储。我很想在这里了解更多信息。
  • 请告诉我们是EF3.5还是EF4
  • @David 感谢您的出席。要求是完全删除数据库。需要使应用程序独立于 DB。
  • 感谢@AndreasRehm,它是 EF 4。
  • 要求完全删除数据库。 这背后的原因是什么?如果是因为 SQL Server 的安装和维护开销很大,您可能需要查看 SQL Server LocalDB。

标签: c# sql-server winforms entity-framework data-access-layer


【解决方案1】:

由于数据访问被分离到存储库中,您应该能够编写一个新的存储库实例,该实例将允许您以新格式检索数据。具体来说,如果您想以 XML 格式保存数据,您只需编写一个使用 Linq-to-XML 检索数据的新存储库。

我不知道将数据从 SQL Server 传输到 XML 的快速方法。如果我这样做,我可能会编写一些自定义应用程序来进行转换,但我怀疑对于这种类型的迁移有更好的解决方案。

【讨论】:

    【解决方案2】:

    你的问题重复了这个问题:

    似乎有 virtuoso xml 的提供者:

    一些提示可以在这里找到:

    EF ist 基本上是为数据库抽象而开发的。如果您尝试存储 XML,则需要编写自己的 xml 数据库提供程序。

    您的选择是:

    • 迁移到 SQL compact(但不是 XML)
    • 使用 XPath 并重写您的代码
    • 为您自己的数据库提供程序使用 Xpath

    请注意,您的 xml 文件大小和速度取决于数据量!使用多个 xml 文件可能会一团糟。

    【讨论】: