4

我想使用 Visual Studio 2008 IDE 为 SQL Server Compact 3.5 数据库编辑我的本地数据库架构。但是,文档和 UI 中的所有内容似乎都假设应用程序/程序集只想使用单个数据库,并且从不希望基于现有模式创建新数据库。

我希望能够使用可视化工具编辑数据库架构,然后拥有一种基于编辑后的架构创建新数据库文件的机制。这样,我的应用程序创建的每个文档都将存储在它们自己单独的数据库文件 (.sdf) 中。此外,出于单元测试的目的,我希望能够创建空的临时 .sdf 文件,以便在空数据库上运行我的单元测试。

我知道如何使用现有模式创建新的空数据库的唯一方法就是将我的主 .sdf 文件复制到一个新文件中。

使用 C# 代码创建新的 .sdf 文件的推荐方法是什么?即,如何实现 MyModel.Create("foo.sdf") 以便它使用我在 Visual Studio 中创建的架构创建 .sdf 文件。

编辑:经过长时间的调查,我最终完全放弃了 VS2008 本地数据库 .sdf 编辑器,并开始使用 LINQ-to-SQL 创建新的 .sdf 文件。我现在只指定一堆 C# 类,注释它们以使用 LINQ-to-SQL 并通过调用我的 DataContext 的 CreateDatabase 方法创建新的数据库文件。MSDN 上有一个很好的文档:How to: Dynamicly Create a Database (LINQ to SQL)

4

1 回答 1

3

创建一个“model.sdf”数据库,其中包含架构和可能需要的初始数据。如果你想创建一个新的数据库,你可以从这个模型中创建一个副本。

您还可以从现有数据库替代链接)创建 Sql-DDL,然后创建一个空数据库并在其上执行此 SQL。这会慢很多。

于 2009-01-21T10:20:16.887 回答