我正在开发一个使用VS2013的项目,该项目将针对WP8,WinRT和x86或x64体系结构上的Windows桌面平台。
这个项目需要本地数据访问/存储,我选择了SQLite。
我想知道是否有人可以指向我的资源/博客/示例,它将向我展示如何创建一个数据层,这将允许我针对上述所有内容,同时仍然保留尽可能多的公共代码库数据层?
我有每个SQLite“flavors”的vsix扩展以及C#包装器System.Data.SQLite
。
非常感谢,
理查德
答案 0 :(得分:3)
您将不得不创建一个可供所有这些平台使用的可移植类库。
在该可移植类库中,您将需要使用一个接口,并且您必须传递特定于平台的实现(WP8和WindowsRT将需要稍微不同的实现)。
但是这对我有所帮助。可能还有一些其他资源,但这绝对是最好的资源,也是让我能够做到你想做的事情。
这是我所遵循的一系列剧集(并在此过程中做了一些改动),但它对我帮助很大。 http://nicksnettravels.builttoroam.com/post/2013/06/02/Windows-(RT-and-Phone)-and-Sqlite-(Part-1).aspx
以下是本系列第4部分的一些片段:
创建一个单独的SQLitePCL项目并定义一组接口 它映射到Sqlite-net公开的类/方法。我 不会让你厌倦细节,但你可以从下面看到 image只是几个接口将映射到这样的类 作为SQliteConnection,TableMapping和Column。
关于平台实施:
对于每个平台,我们需要实现这些接口。这是 真的是采用SQLite.cs中定义的sqlite-net类 和SQliteAsync.cs并修改它们以实现定义的 接口。这不像调整类那么简单 签名包括适当的界面但距离不远。
我们需要为每个平台创建一个单独的类库,例如 SQLiteWinRT和SQLiteWP8。您启动哪个平台并不重要 因为你将成为(我先做过电话实施) 使用“添加为链接”技术引用相同的类 在上一篇文章中讨论过。如果我们只是简单的话,你可能会想 将两个库添加相同的类为什么他们不能 全部在共享PCL中。答案在于有条件的 sqlite-net文件顶部的编译语句 - 这些 确定如何为各个平台构建类。