Objektově orientované aplikace obvykle potřebují objektově orientované úložiště. Relace jsou dobré v mapování ukazatelů, ale mnoho technických omezení je skryto pod dokumentační kůrou. Není snadné vybrat správnou databázovou technologii, protože klady jsou napsány všude a zápory jsou rozloženy do mnoha problémů GitHubu. Je to jako koupit si nové auto. Znáte cenu, výkon a spotřebu paliva, ale musíte se zeptat na spolehlivost a náklady na údržbu.
SQLite
- Nelze přejmenovat nebo odebrat existující sloupec tabulky.
SQLite je napsán v jazyce C, což omezuje architektury procesorů UPW na ty, které SQLite podporuje, protože Windows nemá SQLite integrovaný. Není to velký problém, ale LiteDB toto omezení nemá. SQLite vyžaduje rozšíření sady Visual Studio SQLite for Universal Windows Platform, které se aktualizuje automaticky, ale pokaždé, když k tomu dojde, musíte ručně znovu vytvořit odkaz na projekt na sadu SDK. Verzi databáze lze sledovat pomocí příkazu pragma user_version
, který je jednoduchý a efektivní. Pokud chcete použít Entity Framework Core, musíte cílit alespoň na Windows 10 Fall Creators Update, ve které UPW podporuje .NET Standard 2.0.
Království
- Nepodporuje znaky Unicode v cestách k souborům.
- Nepodporuje cizí klíče v dotazech.
- Vlastnosti objektu jsou přístupné pouze uvnitř bloku
using
kontextu databáze. - Dotaz nepodporuje více hodnot v klauzuli
where
. - Není možné použít
await
uvnitř blokuusing
kontextu databáze. - Po nastavení nelze primární klíč změnit.
- Dotaz nepodporuje projekci.
Služba Realm postrádá podporu znaků UTF-8 pro cesty k souborům. To znamená, že služba Realm nemůže otevřít databázový soubor, pokud název uživatelského profilu obsahuje znaky mimo tabulku ASCII. Tato chyba přetrvává déle než jeden rok od začátku podpory UPW a neplánuje se žádná oprava. Služba Realm je použitelná pouze v prostředí Android nebo iOS. Spoléhá se také na Fody, který do procesu sestavení vkládá některé změny kódu. Když se Fody aktualizuje, sestavení se rozbijí.
LiteDB
- Pokud má dotaz více operací
and
, modul spustí pouze jednu podmínku s indexem a ostatní podmínky použijí úplnou kontrolu.
LiteDB je napsán v C#, což znamená, že se dobře hodí do prostředí Visual Studio, NuGet a .NET. Vyžaduje .NET Standard 1.3, který je implementován od UWP 10.0.10240. Je to velmi užitečné pro jednoduché aplikace, ale když manipulace s daty vyžaduje složitá pravidla a výkon má vysokou prioritu, ukazuje se, že LiteDB potřebuje určité optimalizace rychlosti.