【发布时间】:2011-11-22 08:33:06
【问题描述】:
我需要更新包含很多行的表中的列。每行都有一些大的 TEXT 列,我不需要更新。
我正在使用 LinqPAD,这大致就是我想做的:
(from s in Table
where s.FK_ID == null
select new{s.FK_ID, s.Datum, s.PBNummer}).ToList()
.ForEach(s => s.FK_ID = new Guid(...some new guid here...));
SubmitChanges();
这不会编译,因为匿名类类型的属性是只读的。
如果我这样做
(from s in Table
where s.FK_ID == null
select s).ToList()
然后我可以更新和保存,但是所有列都加载了,这需要很长时间并导致内存问题。
有没有办法只加载一些列但仍然有一个我可以使用SubmitChanges 更新和保存的对象?还是我必须切换到 SQL 语句?
【问题讨论】:
-
为什么需要通过 linq-2-sql 来做这个?您不能只发出原始查询吗?
-
@alexn 'new Guid()' 部分更复杂,如我的示例所示。
标签: c# sql-server linq-to-sql linqpad