C# 实体框架克隆列表

C# 实体框架克隆列表,c#,entity-framework,C#,Entity Framework,我正在使用已保存在缓存中的IEnumerable。我需要这个列表的副本并转换内容。此副本是临时的,不会保存 目前我正在MyObject上使用IClonable创建一个新列表。这是可行的,但会导致EF再次访问数据库,因此速度非常慢。我如何克隆此列表而不必访问数据库?数据已在缓存中的内存中 或者;是否有更好的方法从缓存中复制列表,以便我可以临时使用它 使用EF5、.NET4.5 这是我用来克隆的。请注意,residualList位于缓存中。但是这一行仍然会导致EF从数据库中获取所有信息 var cl

我正在使用已保存在缓存中的IEnumerable。我需要这个列表的副本并转换内容。此副本是临时的,不会保存

目前我正在MyObject上使用IClonable创建一个新列表。这是可行的,但会导致EF再次访问数据库,因此速度非常慢。我如何克隆此列表而不必访问数据库?数据已在缓存中的内存中

或者;是否有更好的方法从缓存中复制列表,以便我可以临时使用它

使用EF5、.NET4.5

这是我用来克隆的。请注意,residualList位于缓存中。但是这一行仍然会导致EF从数据库中获取所有信息


var clonedList=residualList.Select(x=>(Product)x.Clone()).ToList()

几种解决方案:从上下文中分离列表或使用数据库集的本地属性,或序列化列表并取消序列化以进行复制。顺便说一句,这听起来像residualist是一个IQueryable或DbQuery,它不应该出现在您的用例中。residualist是一个列表(使用.ToList()方法从dbContext创建,所以应该在内存中)。我会在早上尝试你的建议,谢谢。在这种情况下,可能是克隆方法触发了一些虚拟属性,而你将面临