我对整个n层体系结构还很陌生,对于将MVVM与3层应用程序结合使用还存在一些疑问。

据我了解,我们有:

  • View 或UI层,它是xaml文件
  • Model,这是一个自定义类,其中包含对数据对象
  • 进行“建模”的属性和方法
  • ViewModel,它是 View 和模型之间的“适配器”
  • WCF服务器,应该用来处理数据库访问
  • 用于存储数据的SQL数据库

  • 我的问题是,如何使用数据访问层将所有这些放在一起?使用MVVM,我可以让模型包含加载/更新自身的方法。相反,这应该是WCF服务器上发生的事情吗?如果是这样,对服务器的引用应该存储在Model或ViewModel中吗?以及如何称呼它?

    最佳答案

    严格来说,DAL不是MVVM模式的一部分。 DAL在模型的“后面”,并且 View 和 View 模型应该对DAL一无所知。

    例如,将实体公开为模型的属性,这些属性是在首次访问时加载的。

    public class ProductListModel
    {
        public List<Product> AllProducts
        {
           get
           {
              if (_AllProducts == null)
                  _AllProducts = MyServiceProxy.LoadAllProducts(...)
              return _AllProducts;
           }
        }
    
        public void SaveChanges()
        {
             if (_AllProducts != null)
               MyServiceProxy.SaveProducts(AllProducts);
        }
    }
    

    关于wpf - WPF-将DAL放在带有MVVM的3层体系结构设计中的位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3189681/

    10-12 23:25