LINQ to Entities 允许这样做:
我只需要一个大型“User”表的两个属性,并使用“Select”方法创建一个“Person”对象,以便进行一些处理。问题是我经常这样做(比如每秒两次),这会影响垃圾回收器(GC)。
因此,我决定池化“Person”对象,但我不知道如何使用LINQ更新现有对象。我可以像上面那样将其作为匿名方法获取,然后将其属性分配给depooled对象,然后可以返回depooled实例,这至少会使匿名实例在较低的GC代中消失,但是...
我真的更喜欢这样:
context.User.Select(u => new Person
{
Name = u.Name,
Parent = u.Parent.Name
});
我只需要一个大型“User”表的两个属性,并使用“Select”方法创建一个“Person”对象,以便进行一些处理。问题是我经常这样做(比如每秒两次),这会影响垃圾回收器(GC)。
因此,我决定池化“Person”对象,但我不知道如何使用LINQ更新现有对象。我可以像上面那样将其作为匿名方法获取,然后将其属性分配给depooled对象,然后可以返回depooled实例,这至少会使匿名实例在较低的GC代中消失,但是...
我真的更喜欢这样:
context.User.Select(u => People.Take(u.Name, u.Parent.Name))
这将抛出一个 NotSupportedException
异常。
- 我能使用 Entity Framework 更新现有对象的值吗?
- 如果可以,如何操作?
- 如果不行,我有什么替代方案?