将 SQLite 与 Blazor WASM 结合使用有什么好处?

问题描述 投票:0回答:2

我正在观看 Steve Sanderson 的这段视频,该视频演示了如何将 SQLite 与 Blazor Web Assembly 结合使用,并且我正在考虑在我的一个项目中使用它。我只是想了解这样做的好处是什么。从我能找到的任何信息来看,实际的 SQLite 数据库似乎驻留在内存中。在他的项目中,他将其与 IndexedDB 同步以实现持久性。如果是这样的话,这比将数据作为对象列表存储在内存中并使用 Linq 直接查询对象(而不是使用 Entity Framework 从 SQLite 数据库查询)更好吗?如果需要,您还可以将对象持久保存到 IndexedDB。我从来不认为将这么多数据保存在内存中是个好主意。当看到您可以在 Blazor 中使用 SQLite 时,我最初的想法是它允许您将数据保留在客户端,而无需将其全部保留在内存中。如果情况并非如此,那么在 Blazor 应用程序中使用 SQLlite 有什么好处?

.net sqlite blazor indexeddb blazor-webassembly
2个回答
4
投票

一个好的编程规则是 KISS - 保持简单。 因此,如果 Linq to Objects 满足了您的应用程序的要求,那么使用 SQLite 将其复杂化似乎是错误的做法。

但是,在视频中 Steve S. 确实提出了适合使用 SQLite 的需求参数 - 应用程序需要处理:

  • 大量数据
  • 在客户端
  • 离线
  • 快点

此处使用 SQLite 并不是为了持久化超出客户端应用程序内存。

因此,关于使用 SQLite 的 Blazor 应用程序的优势的问题的答案很简单:

  • 如果应用程序需要内存中关系数据库的功能,但试图避免使用它,那么它要么在实现中重新发明轮子,要么缺少必要的功能。
  • 如果应用程序不需要内存数据库的功能但正在使用内存数据库,则会引入不必要的复杂性(成本)。

0
投票

在将数据保存在内存中的限制下,没有任何好处。 当数据库文件存储在文件系统 (OPFS) 中时,就会带来好处。然后您将在浏览器中获得完整的 RDBMS。 事实上,这正是 Google 建议取代 WebSQL(几乎)标准的方法。

据我所知,缺点是占地面积相当大。但主要来自实体框架。我不确定现在是否值得这样做,但是,如果您别无选择,那么很高兴知道它可用。 我很确定这在未来会得到显着改善,并且我很期待。

© www.soinside.com 2019 - 2024. All rights reserved.