Windows phone 7 Sql Compact作为XAP中的嵌入式资源或内容

Windows phone 7 Sql Compact作为XAP中的嵌入式资源或内容,windows-phone-7,windows-phone-8,sql-server-ce,windows-phone-7.1,Windows Phone 7,Windows Phone 8,Sql Server Ce,Windows Phone 7.1,我想将带有SQL CE的.XAP文件部署到windows设备。我应该怎么做才能使它包含在XAP文件中?我必须让它成为“嵌入式资源”还是“内容” 谢谢。这取决于: 如果要使数据库文件可读,请包含为嵌入式资源,并提取到独立存储,并使用连接字符串,如: Data Source=isostore:/Chinook.sdf Data Source=appdata:/Chinook.sdf;File Mode=Read Only; 如果要将数据库用作只读,请包含为内容,并使用连接字符串,如: Data

我想将带有SQL CE的.XAP文件部署到windows设备。我应该怎么做才能使它包含在XAP文件中?我必须让它成为“嵌入式资源”还是“内容”

谢谢。

这取决于:

如果要使数据库文件可读,请包含为嵌入式资源,并提取到独立存储,并使用连接字符串,如:

Data Source=isostore:/Chinook.sdf
Data Source=appdata:/Chinook.sdf;File Mode=Read Only;
如果要将数据库用作只读,请包含为内容,并使用连接字符串,如:

Data Source=isostore:/Chinook.sdf
Data Source=appdata:/Chinook.sdf;File Mode=Read Only;

更多详情请参见我的博客帖子:

使用内容。将数据库文件设置为Embedded Resource会将其添加到DLL中,这将影响应用程序的启动时间(假设DLL位于启动路径中),并会增加应用程序的内存使用量

如果要将数据库文件复制到独立存储以启用读/写,可以使用WP7.x中显示的代码或WP8.x中的以下(更简单)代码:

var dbFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///myDb.sdf"));
await dbFile.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder, "myDb.sdf", NameCollisionOption.FailIfExists);

因此,WP8.x中不需要像WP7.x中那样的数据库部署项目吗?通过“数据库部署项目”,您指的是专门用于创建引用DB文件的项目吗?这是一个如何创建数据库的问题,而不是如何部署它。但在这方面,没有——自WP7.x以来,指导方针没有改变。使用电话项目创建数据库仍然是最可靠的方法。