我正在尝试使用dbStorage功能创建一个UWP应用程序。
我查看了UWP-Howto:https://msdn.microsoft.com/en-us/windows/uwp/data-access/index,看到有两种方法可以做到这一点。
后一个选项确实是一个更好的选择,因为它是一个ORM,但我很想知道,添加它是否会使用普通的sqlite扩展来提升App大小?有没有人使用它会遇到这样的问题?
答案 0 :(得分:1)
应用程序大小应该是创建UWP应用程序时最不关心的事情之一。这个尺寸是一次性的问题'当用户安装应用程序时,因为下载需要一些时间。 Windows 10商店中内置了许多改进以解决此问题:
更多信息,请参阅例如这Build session。
如果你想要准确的数字,我建议建立一个小的PoC,有和没有并比较大小(虽然大小会改变一点点,因为你写了不同的代码片段使其工作)。
但由于使用EF Core而增加的大小不会超过100的MB。包本身是EFCore.Sqlite 71kb,EFCore.Relational 475kb,EFCore 783kb,这些甚至包括多个dll,xml,......所以它只是其中的一小部分。再加上一些基本软件包(缓存,日志记录,......)以及可能会使用的一些额外的.NET标准库,这些库在使用基本API时可能不会被使用,您将额外添加几MB。在我看来,这是可以忽视的。
你应该担心的事情而不是初始下载时间是:
如果您在本机sqlite3 API和EF Core之间进行选择,对我来说这将是一个简单的选择(考虑上面提到的第3点)。请记住,仍然存在issues EF Core和.NET Native(由商店完成的优化或在启用.NET本机工具链的发布模式下构建时)。如果你想很快发布到商店并拥有一个相当大的数据库,你可能会有一些麻烦让它免于崩溃。如果您可以侧载应用程序,只需在没有.NET Native工具链的情况下构建。