c# - MVVM 中的数据库模型

标签 c# database sqlite mvvm

你好,我正在尝试学习 MVVM,但我对某些部分不太确定,主要是(数据)模型需要与 VM(ViewModel)通信的部分。

所以我得到了一个类 person,它有很多属性(使用 Raiseproperty(INotifyPropertyChanged))。现在我如何将该类连接到 VM 我将创建一个新类并将其称为 ViewModelPerson,但我主要想要一个人员列表,因为只显示一个人有点没用,该列表将从数据库(SQLite ) 与小巧玲珑。现在我需要在哪里创建一个可观察列表,是在 View 模型中还是在(数据)模型中?我认为在 ViewModel 中,因为我需要将其绑定(bind)到 View ,但是我在哪里将数据库信息从它插入到 ViewModel ObservableCollection 中?我是否将它放在像 ViewModelPersonsList Constructor 这样的构造函数中,它有一个查询来从 SQlite 数据库中收集所有人并将其插入列表中???

希望您能理解我在 MVVM 模型上哪里不明白,如果有什么不清楚的地方请尽管提问,我会尽力更好地解释我的问题。

格言

最佳答案

View -> View 模型 -> 业务逻辑 -> 数据层 -> 数据库

View -> View 模型 -> WCF/Web 服务 -> 业务逻辑 -> 数据层 -> 数据库

如果您的 View 模型需要一个 Person 对象列表,那么它应该调用您的业务逻辑层,而您的 BLL 将围绕调用数据层实现必要的逻辑。您的 BLL 返回列表,您的 VM 通过绑定(bind)使其对 View 可用。

更新 Person 对象的工作方式相同。 VM 仅使用更新后的对象调用 BLL。

关于c# - MVVM 中的数据库模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576035/

相关文章:

c# - 针对 C# 开发人员的 Neo4j 和 MSSQL 实用性能比较

mysql - 在MySQL中设计父子关系

database - 使用 liquibase 将 postgres 表复制到另一个模式

c# - 多接口(interface)装饰器——Autofac 中的循环依赖之谜

c# - 如何使用鼠标滚轮在 Microsoft 图表控件中启用缩放

database - 更新 postgres 表以压缩第二个表中的重复值

Python SQLite3函数不打印任何数据

iphone - sqlite3 因第二个插入语句而崩溃

android - (Android) 向 sqlite 插入数千行

c# - 使用 System.Net.HttpClient 上传时如何跟踪进度?