将复杂的SQL Server 2008数据备份到SQL Server Compact Edition(sqlce)

时间:2011-02-17 10:37:47

标签: .net sql-server entity-framework sql-server-ce

我正在尝试构建一个.net类,以便在sql server compact edition中对一些重要数据进行紧急备份。它不是大量的数据,但它确实具有相当复杂的数据结构(30多个表具有显着的交叉引用)。我们使用Entity Framework来完成大部分数据工作。

有关使用sqlce和.net的文档似乎有点薄,目前我正在苦苦挣扎。我已经足够轻松地创建了数据库文件(.sdf)但理想情况下我希望能够指定该文件所在的位置,而不是在默认情况下创建它(C:\ Program Files(x86)\ Common Files \ microsoft在我的情况下共享\ DevServer \ 10.0)。这是可能的,如果是这样的话?

更重要的是,我担心我将不得不手动重新创建所有30多个表,这不仅是荒谬的劳动密集型,而且也不是很容易扩展。有没有办法 - 最好使用实体框架 - 从我们的中央数据库中获取我需要的数据子集并将其插入一个干净的SqlCE数据库,让它自动创建必要的表?

干杯, 马特

2 个答案:

答案 0 :(得分:1)

1)您可以使用Entity Framework生成脚本,但这可能仅在VS 2010中可用。只需右键单击EF模型并选择“从模型生成数据库”。然后,您可以连接到数据库并运行脚本以生成表。请注意,这也将更改您在该模型的EF中的关联,并将其“挂钩”到新数据库。

1)a]您始终可以使用现有数据库在SQL Server中创建脚本。只需编写数据库脚本并选择所有表,约束,触发器等。

2)您可能想要检查SQL CE中可用的数据类型。如果我记得正确,那么CE中就不存在一些数据类型。

答案 1 :(得分:1)

您可以使用我的命令行实用程序Export2sqlce在SQL Compact兼容的SQL脚本中编写整个Server数据库的脚本:http://exportsqlce.codeplex.com