2017-08-02 97 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