Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF MVVM:是否应在插入/更新/删除后重新创建所有POCO?_C#_Wpf_Mvvm - Fatal编程技术网

C# WPF MVVM:是否应在插入/更新/删除后重新创建所有POCO?

C# WPF MVVM:是否应在插入/更新/删除后重新创建所有POCO?,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在使用MVVM模式开发WPF应用程序。UI的一部分非常类似于主细节设置。 显示的对象是POCO,带有用于持久化的数据库 我的问题是,插入/更新/删除后会发生什么?是使用GetList()从数据库中重新加载整个列表并创建新POCO,还是将现有列表保留在内存中并只添加/更新/删除新POCO就足够了?这取决于具体情况。如果仅从计算机上的客户端应用程序更新数据库中的记录,则在执行插入/更新/删除操作后,无需重新加载数据,因为内存中始终会有最新的更改 但是,如果数据库可能从其他地方更新,则需要定期获取

我正在使用MVVM模式开发WPF应用程序。UI的一部分非常类似于主细节设置。 显示的对象是POCO,带有用于持久化的数据库


我的问题是,插入/更新/删除后会发生什么?是使用GetList()从数据库中重新加载整个列表并创建新POCO,还是将现有列表保留在内存中并只添加/更新/删除新POCO就足够了?

这取决于具体情况。如果仅从计算机上的客户端应用程序更新数据库中的记录,则在执行插入/更新/删除操作后,无需重新加载数据,因为内存中始终会有最新的更改

但是,如果数据库可能从其他地方更新,则需要定期获取/重新加载数据,以便向用户显示最新的已知数据


请注意,这与MVVM设计模式无关。

每次更新数据库时,从数据库获取整个集合会有点贵,不是吗?您使用的是ORM吗?这是一种理想的情况。此外,您可以在视图模型中使用初始加载填充一个可观察的集合,并在其中添加/删除项(如果不使用ORM,还可以执行INSERT和DELETE);如果集合绑定正确,这将动态更新视图。这里有一个例子:MVVM控件通常绑定到POCO。你的意思是什么?这和你的问题有什么关系。。。?POCO只不过是内存中的对象。我有一些问题,在更新源列表时清除了组合框,因为所选项目引用不再在列表中。我想确保在遵循模式的同时解决这些问题……再次强调:这与您最初的问题无关。如果您有其他问题,请提出新问题。