有一点BrainF ***让我理解与LinqToSQL相关的MVVM。
MVVM的构建如下:
查看 - > Viewmodel - >模型
查看:xaml和cs代码隐藏文件。对 ?
Viewmodel:由Developer(* .cs)创建,我的模型的封装属性
型号:Datamodel
所以这是问题:
LinqToSql给了我一个dbml文件,其中包含我数据库中的所有数据,所以我可以使用它作为模型吗?
我必须在何处以及如何在此架构中实现命令?
从数据库获取数据并填充视图模型或模型的方法在哪里? :-) 喜欢getCustomer()
答案 0 :(得分:12)
你在这里问了很多问题,但让我们一次解决一个问题:
查看:xaml和cs代码背后 文件。对吗?
是。或者,通常,所有仅关注呈现数据的逻辑。示例:
LinqToSql给了我一个dbml文件 其中包含我的所有数据 数据库,我可以用它作为 型号?
是的,你可以。在DBML文件下创建的LINQ-to-SQL类为您提供了根据数据库模式构建的对象模型。您可以扩展这些对象(使用部分类,或者通过构建由它们组成的其他类)来添加验证和其他业务逻辑。 Scott Guthrie gives us the low-down.
这些是您的ViewModel通常会封装的类,添加和公开与显示数据的视图相关的属性。
我必须在何处以及如何实施 这个架构中的命令?
Commands是一种松散耦合的用户界面和事件处理逻辑之间的通信方式。因此,您的ViewModel会将命令公开给视图。您可以指定给定控件(如Button.Click)上的给定事件应发出的命令,相关的ViewModel将处理其余事件。
从哪里获取数据的方法 数据库并填充viewmodel或 模特? :-) like getCustomer()
这就是Repository模式的用途。简而言之:构建一个Repository类,它使用DBML文件中指定的DataContext将LINQ查询提交给数据库并返回Model对象。您的ViewModel可以使用Repository类的实例来检索它们将呈现给您的视图的模型。
请注意我只概述了一些基础知识,这肯定不是使用您提到的广泛模式的唯一方法。 Josh Smith已就这些概念撰写了大量精彩资料。 WPF Apps With The Model-View-ViewModel Design Pattern将是一个很好的起点!
答案 1 :(得分:1)
基本上你的存储库充当你的数据源,这就是你编写方法的地方:
public class CustomerRepository{
private MyDataContext db = new MyDataContext();
public Customer Find(id)
{
//Linq queries or Lambdas
}
public Customer Add(Customer _custoemr){}
public void save(){}
public IEnumerable<Customer> FindAll(){}
}
在this question中,您可以找到一些有用的链接,可以帮助您了解存储库模式。