我正在WPF上为一个研讨会写一个程序。它使用SQL Server数据库。用户可以在程序中添加或编辑一些数据(新维修,所有者和维修人员)。这一切都写到了DB。在主窗体中,我有一个显示DB记录的DataGrid。 DataGrid的DataSource是从DB填充的ObservableCollection。
public ObservableCollection<Repair> RepairList { get; set; }
并在构造函数中:
RepairList = new ObservableCollection<Repair>(DbContext.Repair.ToList().OrderByDescending(x => x.Id));
如果我运行一个程序实例,一切都会好的。但是如果我启动程序的第二个或第三个实例并在数据库中放入一些记录会发生什么?如何更新其他程序实例的DataGrid中的值?我与记录有任何冲突吗?
答案 0 :(得分:0)
如何更新其他程序实例的DataGrid中的值?
最简单的方法是为表创建一个&#34;更改&#34; -timestamp-column,并在命令或需要时(例如在编辑之前)定期检查自上次检查后更改的行。当检测到更改时,您可以重新加载ObservableCollection或向其添加/删除条目。
我与记录有任何冲突吗?
是。当两个或多个实例同时编辑一行时,只保留最后一个保存的编辑(如果您不使用某些高级逻辑来合并编辑)。标志列(如&#34; editLock&#34;)可以帮助 使用程序生成的ID插入时也可能存在冲突,因此我建议使用自动生成的ID。