C# 实体框架-更新对象列表

C# 实体框架-更新对象列表,c#,entity-framework,list,C#,Entity Framework,List,我正在从事一个项目,该项目要求我将数据保存在数据库中。为了节省时间和精力,我使用了EF代码优先实现。该项目是一个电影预订系统,我通过以下方式实现了它: 电影类存储电影信息 Room类存储房间数量的度量—椅子的行数和列数,表示一个房间 Show类存储电影放映-包含对电影和房间对象的引用,还基于房间创建座位列表和预订列表。包含节目开始和结束的两个日期时间 预订类商店有关预订的信息-该人的电话号码和门票列表 票务类商店椅子行和列参考,价格 所以基本上,在最后,我有一个Show对象,它有一个座位列表和一

我正在从事一个项目,该项目要求我将数据保存在数据库中。为了节省时间和精力,我使用了EF代码优先实现。该项目是一个电影预订系统,我通过以下方式实现了它:

电影类存储电影信息 Room类存储房间数量的度量—椅子的行数和列数,表示一个房间 Show类存储电影放映-包含对电影和房间对象的引用,还基于房间创建座位列表和预订列表。包含节目开始和结束的两个日期时间 预订类商店有关预订的信息-该人的电话号码和门票列表 票务类商店椅子行和列参考,价格 所以基本上,在最后,我有一个Show对象,它有一个座位列表和一个预订列表,每个预订都有一个门票列表。但无论我如何尝试,我都不能让实体框架简单地更新这些列表——我总是必须删除现有条目,然后递归地插入新的显示


是否有任何简单的解决方案指示实体框架在更新期间也应检查列表中的更改?或者我必须为存储的所有列表编写递归更新吗?

你能给我们看一些代码吗,例如模型、保存函数?这里是:它是使用DbContext.Entryoriginal.CurrentValues.SetValuesnew完成的,因为这是我能得到的最接近正确对象更新的代码。我知道了你的问题,但不幸的是,我从未使用过这种方法cx.Entryorig.CurrentValues.SetValuesobj;用于更新实体的函数。当我需要在一个实体或列表中进行更改时,我总是手动清除列表并再次添加,我很想知道如何改进。显然,基于比较的更新更适合于获取存储列表、按键比较元素、更新现有元素、添加新元素,但目前还没有任何解决方法。问题是,简单地清空列表并不会清除存储列表的数据库-它会添加引用的预订和机票的新条目,它们会获得新的ID等。这可以通过直接存储机票和预订而不仅仅是引用它们来解决,但这会破坏我建立的整个系统。我也尝试了Attach和Item.State解决方案,但这样它就永远不会保存,不管更新了什么简单属性,例如字符串或列表。