我正在学习MVVM.我知道模型在概念上与我的数据有关.这是我的情景. database table definitioncreate table people (SSN varchar(9),first_name varchar(40),last_name varchar(40)) 在我看来,PeopleV.xaml我定义了一个包
database table definition create table people (SSN varchar(9),first_name varchar(40),last_name varchar(40))
在我看来,PeopleV.xaml我定义了一个包含3列的DataGrid:SSN,FirstName,LastName.
在我的模型类PeopleM中,我暴露了3个属性:SSN,FirstName,LastName.
在我的viewmodel类PeopleVM中我定义了:
PersonInfo = new ObservableCollection<PeopleM>();
现在我需要从SSN> =’xxxxxxxxx’的人那里执行select *并将数据放入DataTable.
我的问题是我应该在模型PeopleM类或viewmodel PeopleVM类中执行此操作(定义DataTable并用数据填充)?
谢谢.
模型应该是仅存在以保存数据的哑数据对象,因此我不会向该层添加任何类型的数据访问.ViewModels用于为视图建模,通常包括为要使用的View加载正确的数据模型,但是它们不一定必须包含数据访问代码本身.
在大多数情况下,如果我将数据访问完全放在另一层,并让ViewModel通过与数据访问层交互来获取数据,我觉得最简单.
例如,我的ViewModel可能有一个SearchCommand,当点击它时会执行以下操作:
void Search(string ssn) { PeopleCollection = PeopleRepository.GetPeopleBySsn(ssn); }
拥有一个单独的数据访问层可以更轻松地重用数据访问组件,并使应用程序更易于维护,更新和测试.