c# - MVVM - 模型教程?

标签 c# .net wpf sqlite mvvm

我目前正在用 C# 创建一个 WPF 应用程序并且一直在关注这个 diagram .我已经阅读了几篇关于 MVVM 的文章,但我特别在寻找虚线框下方所有内容的详细信息(因此模型和数据访问)。我已经有一个本地数据库设置 (SQLite),我正在寻找一种将它连接到我的应用程序的有效方法。

有没有关于为 MVVM 创建这个特定部分的好文章或演示?

最佳答案

有很多方法可以解决这个问题,您选择哪种方法取决于您的应用程序和数据模型的复杂性。

从 .NET 的角度来看,解决此问题的标准方法是在 SQLite 数据库之上创建 Entity Framework 模型。这将生成您的对象模型,并允许您毫不费力地将行为附加到它。它还在某种程度上从您的应用程序代码 (ViewModels) 中抽象了数据库/持久性。有关此方法的详细信息,请在 Google 中搜索“ Entity Framework ”——那里有大量信息。自 EF 4.0 发布以来,EF 有了显着改进。

如果您不想使用 EF(由于复杂性、开销或只是想自己动手),那么您将需要阅读流行的数据源架构模式。从 Martin Fowler 的 Patterns of Enterprise Application Architecture 开始——本书是数据驱动应用架构的圣经。如果您不想购买这本书,请通读模式描述,找到合适的模式并进行 Google 搜索 - 网络上有大量关于此内容的信息。

如果您有一个包含大量行为和模式的复杂模型,那么您需要查看 Domain Model您模型的模式,可能是 Data Mapper数据源模式,用于将数据从数据库中取出并放入模型中。这是最复杂的方法,但如果您需要的话,复杂性会带来灵 active 。

如果您的数据模型更简单,那么您可能希望使用 Table Data GatewayRow Data Gateway用于数据访问,可能是 Transaction ScriptService Layer用于模型和数据库之间的通信。

我很抱歉用链接轰炸你,但现实是,在为应用程序决定架构时,做大量研究很重要,最重要的是学习和依赖已知的解决方案。祝你好运。

关于c# - MVVM - 模型教程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5452644/

相关文章:

c# - 过度使用异步等待?

c# - 所有日期时间都存储在 utc 中

c# - XML序列化和生成HTML文档时的 "<"、 ">"

c# - 在 IIS7 中从 ASP.NET 调用非托管代码

c# - Task.StartOrRestartWhenPossible

c# - 用户控件和自定义控件库的区别

c# - 从字典填充控制值?

.net - XML 反序列化 : Deserialize missing element into null property value

c# - 将文本分配给 TextField 时出现 InvalidOperationException

C# 如何设置灵活的基础,以便稍后从程序集更改控件?