2017-08-02 93 views
0

我的设置如下。我正在iOS Android和UWP上开发交叉平台的Xamarin解决方案,此外我想使用SQlite作为本地数据库。带SQlite的Xamarin(iOS Android UWP)使用OneToMany

为了在UWP和其他平台上使用SQlite,我必须安装nuget包(Frank A. Krueger的sqlite-net-pcl)。

一切工作正常,但由于某种原因,我不能使用Attribute OneToMany。解决方案似乎是删除SqlitePcl包https://forums.xamarin.com/discussion/48545/xamarin-forms-with-sqlite-one-to-many-relationship

我基本上因为这两个约束而被阻塞(UWP + OneToMany)。

有没有人遇到同样的问题?

回答

2

一切工作正常,但由于某种原因,我不能使用Attribute OneToMany。由Frank A.克鲁格创建

SQLite-net PCL包Xamarin公文Local Databases的建议。该软件包默认不支持ForeignKeyOneToMany属性。如果你想获得的关系,你可以使用SQLiteConnection查询方法,例如查询数据库:

return db.Query<Valuation> ("select * from Valuation where StockId = ?", stock.Id); 

详情请参考sqlite-net wiki

以上代码片段thread包含one-to-many attrubute直接,这需要 SQLite-Net Extensions包。这个包在sqlite-net库的顶部提供了一对一,一对多,多对一,多对多,反转和文本blobbed关系。根据commit info,此软件包发布了nuget软件包2.0.0-alpha2以支持sqlite-net-pcl to 1.2.0

所以你可能需要使用SQLite-net PCL 1.2.0包与SQLite.Net Extensions-PCL 2.0.0-alpha2包结合才能满足你的要求。如果您需要使用更高版本的SQLite-net,但没有匹配的扩展包,可以参考extension source code来创建自己的扩展包。

顺便说一句,你也可以尝试使用实体框架核心,也可以设置relationships。详情请参考this articlethis