LINQPad LINQ到SQL更新与匿名类型
问题描述:
说我有在LINQPad以下查询(用C#声明(S)模式)针对一个SQL数据库:LINQPad LINQ到SQL更新与匿名类型
var query = (from te in Time_Entries
select new { te.Period, te.Company_Name }).FirstOrDefault();
如果我想以更新的周期值选择的记录,我认为我可以做类似:
query.Period = 5;
SubmitChanges();
但不幸的是,我上query.Period分配行错误:
Property or indexer 'AnonymousType#1.Period' cannot be assigned to -- it is read only
是否可以通过这种方式或以类似的方式执行更新?
答
不,你不能。匿名类型不能具有可修改的属性。 从文档:
匿名类型提供一种方便的方式来封装一组 只读属性到一个单一的对象,而不必明确 第一个定义一个类型。
无论如何它并没有什么意义。匿名类型有时是非常有用的,但不是当你需要使用LINQ2SQL实体跟踪和更新...
答
那么,答案已经在
select new {}
即使它不会是一个匿名类型,它可能是一个插入... ...
其余的回答是由walther回答。
+0
好点。当你使用new关键字来实例化一个新对象时,很明显你不能更新原始数据集。谢谢。 – Overhed 2013-03-11 13:28:34
Gotcha。感谢您的及时回复! – Overhed 2013-03-09 23:11:03