使用LinqToSQL的MVVM

Mar*_*cus 2 c# wpf command mvvm linq-to-sql

有一点BrainF***让我理解与LinqToSQL相关的MVVM.

MVVM的构建如下:

查看 - > Viewmodel - >模型

查看:xaml和cs代码隐藏文件.对 ?

Viewmodel:由Developer(*.cs)创建,我的Model的封装属性

型号:Datamodel

所以这是问题:

LinqToSql给我一个dbml文件,其中包含我数据库中的所有数据,所以我可以使用它作为模型吗?

我必须在何处以及如何在此架构中实现命令?

从数据库获取数据并填充视图模型或模型的方法在哪里?:-) like getCustomer()

Dan*_*n J 12

你在这里问了很多问题,但让我们一次解决一个问题:

查看:xaml和cs代码隐藏文件.对 ?

是.或者,通常,所有仅涉及呈现数据的逻辑.例子:

  • 给定一个列表,由View层决定它们是否会显示在下拉框或项目符号列表中.
  • 由View来决定管理员的员工是否将他们的名字变成蓝色.但是,不能决定员工是否是经理.

LinqToSql给我一个dbml文件,其中包含我数据库中的所有数据,所以我可以使用它作为模型吗?

是的你可以.在DBML文件下创建的LINQ-to-SQL类为您提供了根据数据库模式构建的对象模型.您可以扩展这些对象(使用部分类,或者通过构建由它们组成的其他类)来添加验证和其他业务逻辑.Scott Guthrie给了我们低调的机会.

这些是您的ViewModel通常将封装的类,添加和公开与显示数据的视图相关的属性.

我必须在何处以及如何在此架构中实现命令?

命令是一种松散耦合的方式,用于在用户界面和事件处理逻辑之间进行通信.因此,您的ViewModel会将命令公开给视图.您指定给定控件(如Button.Click)上的给定事件应发出的命令,相关的ViewModel将处理其余事件.

从数据库获取数据并填充视图模型或模型的方法在哪里?:-) like getCustomer()

这就是Repository模式的用途.简而言之:构建一个Repository类,它使用DBML文件中指定的DataContext将LINQ查询提交给数据库并返回Model对象.您的ViewModel可以使用Repository类的实例来检索它们将依次呈现给您的Views的模型.

请注意我只概述了一些基础知识,这肯定不是使用您提到的广泛模式的唯一方法.约什史密斯在这些概念上写了很多很棒的材料.使用Model-View-ViewModel设计模式的WPF应用程序将是一个很好的起点!