我正在WPF(.NET 4)中构建应用程序
我的应用程序使用自定义扩展程序创建,打开和保存数据文件(为了清楚起见,我将它们称为 .myapp 文件)。我正在使用安装程序项目将 .myapp 文件与我安装的程序相关联,并且我已经给了他们自己的图标/操作/等。)
.myapp 文件非常简单,是一个SQLCE 3.5数据库文件,扩展名从。 sdf 更改为 .myapp 。
它正在运作,但我正在寻找关于这是否是一种好办法的建议。
我的一部分想知道是否应该将 .myapp 文件设为包装文件,其中包含SDF以及一些元数据。我假设这样做,我打开文件时需要将SDF加载到内存中,然后负责将其“保存”回文件。我考虑这个选项的原因是:
这是一种可行/更好的方法吗?通过将SDF加载到内存中,我会看到性能优势吗?是否有任何陷阱需要注意?
赞赏任何其他建议!
答案 0 :(得分:3)
在sdf文件上使用自定义文档扩展名是一个很好的主意。但是,将sdf文件包装在另一个文件中并“加载到内存中”是不行的,因为您只能在SQL Server Compact连接字符串中指定文件路径。 SQL Server Compact引擎为您管理“在内存中加载”并根据需要刷新到磁盘。
1:您可以通过将metatdata存储在sdf文件中的表/表中来完成此操作。 2:以只读模式打开是一个连接字符串选项,因此您可以通过更改连接字符串来实现。 3:您可以为文件指定密码(也在连接字符串中),这将加密数据库文件。
答案 1 :(得分:1)
另一个好处是您可以对文件进行简单加密。这肯定会使没有人直接打开文件并更改数据的可能性更大。