【发布时间】:2012-11-03 08:23:23
【问题描述】:
LINQ to Entities 允许这样做:
context.User.Select(u => new Person
{
Name = u.Name,
Parent = u.Parent.Name
});
我只需要一个大的User 表的两个属性,我使用Select 方法来创建一个Person 对象,这样我就可以对它进行一些处理。问题是我经常这样做(比如每秒两次),这会伤害GC。
所以我决定合并Person 对象,但我不知道如何使用 LINQ to Entities 更新现有对象。我可以像上面一样将它作为匿名方法获取,然后将其属性分配给我猜想的解池对象,然后我可以返回解池实例,这至少会使匿名实例在 GC 的较低代中消失。 ..
我真的更喜欢这样的东西:
context.User.Select(u => People.Take(u.Name, u.Parent.Name))
这会引发NotSupportedException。
- 我可以使用实体框架来更新现有对象的值吗?
- 如果是,怎么做?
- 如果没有,我还有什么选择?
【问题讨论】:
标签: c# .net entity-framework linq-to-entities garbage-collection