LINQPad LINQ To SQL匿名更新

本文关键字:更新 SQL LINQ To LINQPad | 更新日期: 2023-09-27 18:03:20

假设我在LINQPad中有以下查询,目标是SQL数据库(使用c#语句模式):

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

如果我想更新所选记录上的Period值,我认为我可以这样做:

query.Period = 5;
SubmitChanges();

但不幸的是,我得到一个错误的查询。周期分配线:

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

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

LINQPad LINQ To SQL匿名更新

不行。匿名类型不能具有可修改的属性。来自文档:

匿名类型提供了一种方便的方法来封装一组将只读属性放入单个对象中,而不必显式地先定义一个类型

反正也没什么意义。匿名类型有时非常有用,但当您需要使用Linq2Sql实体跟踪和更新时就不是这样了。

答案已经在

select new {}

即使不是匿名类型,也只能是插入....

其余的由walther在他的回答中回答。