C# 如何使用EntityFramework处理主详细信息窗口?

C# 如何使用EntityFramework处理主详细信息窗口?,c#,entity-framework,master-detail,C#,Entity Framework,Master Detail,这是一个问题,我找不到任何琐碎的解决办法,除了它是如此普遍。我认为这个问题足够抽象,可以应用于WPF和Winforms 如果母版尚未保存,是否允许插入子版? 这迫使我们在内存中收集项目,并在用户点击保存按钮时保存主项和子项 从现有主节点删除子节点时会发生什么情况? 如果用户进入一个窗口编辑一个包含一些子项的主实体,则应立即删除子项,或者在内存中创建一个deletes集合,当用户点击保存按钮时,该集合将被复制 这使问题进一步复杂化,因为当用户添加一个新的子项然后将其删除时,程序应该管理这种情况,因

这是一个问题,我找不到任何琐碎的解决办法,除了它是如此普遍。我认为这个问题足够抽象,可以应用于WPF和Winforms

如果母版尚未保存,是否允许插入子版?

这迫使我们在内存中收集项目,并在用户点击保存按钮时保存主项和子项

从现有主节点删除子节点时会发生什么情况?

如果用户进入一个窗口编辑一个包含一些子项的主实体,则应立即删除子项,或者在内存中创建一个
deletes
集合,当用户点击保存按钮时,该集合将被复制

这使问题进一步复杂化,因为当用户添加一个新的子项然后将其删除时,程序应该管理这种情况,因为该子项不存在于数据库中,所以不应该将其添加到删除列表中

如果子实体有自己的子实体可以编辑,会发生什么情况?

如果主详图视图允许编辑详图图元,并且该图元的编辑窗口是另一个主详图视图,则如果内部子视图更改了数据库,则会单击“保存”按钮,或者在单击“主保存”按钮之前会延迟保存

是否插入一个伪空主控形状以简化逻辑?

我认为在第一次创建主实体时插入一个空的主实体更容易,并且主子实体上的所有CRUD操作都会直接影响新创建的实体上的数据库,如果点击取消按钮,只需删除主实体及其所有子实体。有人已经这样做了吗

我在这里看到的问题是,有些表具有所需的值或外键,而这些值或外键不能仅指定一个默认值

如果在用户保存主详细信息窗口的标题数据之前,程序不允许用户添加子实体,则可以解决此问题