我的 C# 应用程序使用存储库模式,我非常怀疑如何实现 CRUD 操作的“更新”部分。具体来说,我不知道如何“告诉”存储库我要替换哪个对象(以便以后可以执行持久性。
我在使用应用程序库的控制台应用程序(仅作为示例编写)中有以下代码:
class Program
{
static void Main(string[] args) {
var repo = new RepositorioPacientes();
var listapacientes = repo.GetAll();
// Choosing an element by index
// (should be done via clicking on a WPF ListView or DataGrid)
var editando = listapacientes[0];
editando.Nome = "Novo Helton Moraes";
repo.Update(editando);
}
}
问题是:我应该如何告诉存储库它必须更新哪个元素?我应该使用相等比较器遍历整个存储库来查找元素吗?
注意:此存储库使用 XML 序列化封装数据访问,每个实体一个文件,并且我的实体(Paciente
本示例中的类型)具有该[Serializable]
属性。也就是说,“更新”操作最终会通过Serialize
方法将给定实体的 XML 文件替换为另一个具有更新数据的 XML 文件。
不过,我对此并不担心。我无法弄清楚的是如何实现repo.Update(entity)
,以便 repo 知道被传回的这个实体与从中选择的实体相同listapacientes
,而不是存储库本身。
谢谢阅读!