代码之家  ›  专栏  ›  技术社区  ›  Rachel

WPF-在MVVM的3层体系结构设计中,DAL应该放在哪里?

  •  5
  • Rachel  · 技术社区  · 14 年前

    我对整个n层体系结构还比较陌生,对于如何将MVVM与3层应用程序结合使用,我有些疑问。

    据我所知,我们有:

    • ViewModel,它是视图和模型之间的“适配器”
    • 一个WCF服务器,用来处理数据库访问等

    我的问题是,如何使用数据访问层将所有这些放在一起?使用MVVM,我会让模型包含加载/更新自己的方法。相反,这应该发生在WCF服务器上吗?如果是这样,对服务器的引用应该存储在Model还是ViewModel中?又该怎么称呼呢?

    3 回复  |  直到 14 年前
        1
  •  9
  •   STO    14 年前

    严格地说,DAL不是MVVM模式的一部分。DAL在模型后面,视图和视图模型应该对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);
        }
    } 
    
        2
  •  1
  •   Charles Bretana    14 年前

    数据访问是一个独立的问题。。。您可以用许多不同的方式和模式来实现它,但是在所有情况下,最终的结果都是MVVM类将使用一个模型。

    从数据库本身进行的实际数据访问当然是在WCF的服务器端进行编码的。。。

        3
  •  0
  •   fdfrye    14 年前

    有很多很长的博客文章和关于组织这一切的描述。这是我最近(今天)读到的一篇:

    [链接文本][1]

    [1]: http://dotnetslackers.com/articles/data-management/About-layers-separation-and-Entity-Framework.aspx