0

假设我在针对 SQL DB 的 LINQPad 中有以下查询(使用 C# 语句模式):

var query = (from te in Time_Entries
            select new { te.Period, te.Company_Name }).FirstOrDefault();

如果我想更新所选记录上的 Period 值,我会认为我可以执行以下操作:

query.Period = 5;
SubmitChanges();

但不幸的是,我在 query.Period 分配行上遇到错误:

Property or indexer 'AnonymousType#1.Period' cannot be assigned to -- it is read only

是否可以以这种方式或类似方式执行更新?

4

2 回答 2

3

不,你不能。匿名类型不能具有可以修改的属性。从文档中:

匿名类型提供了一种方便的方法,可以将一组只读属性封装到单个对象中,而无需先显式定义类型。

无论如何,这没有任何意义。匿名类型有时非常有用,但是当你需要使用 Linq2Sql 实体跟踪和更新时就不是这样了……

于 2013-03-09T23:05:55.597 回答
1

嗯,答案已经在

select new {}

Even if it would not be an anonymous type, all it could be is an insert....

The rest is answered by walther in his answer.

于 2013-03-10T15:52:02.200 回答