我正在尝试使用Lambda编写一些Linq代码。这是我第一次使用Lambda,我在更新记录时遇到了问题。我的代码如下:
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
Table<NOTIF_RECIP> NOTIF_RECIP_alias = db.GetTable<NOTIF_RECIP>();
Table<NOTIF_SCHED> NOTIF_SCHED_alias = db.GetTable<NOTIF_SCHED>();
Table<mainframe_replication> mainframe_replication_alias = db.GetTable<mainframe_replication>();
var ids = NOTIF_SCHED_alias.Select(x => x.NOTIF_RPT_ID).ToArray();
foreach (string notif_sched_data in ids)
{
var repljoinmf = mainframe_replication_alias
.Join(NOTIF_RECIP_alias,
mfr => mfr.RPT_ID,
nr => nr.NOTIF_RECIP_ID,
(mfr, nr) => new
{
ReportId=mfr.RPT_ID,
Reportversion=mfr.RPT_VERS,
ReportBytes= mfr.RPT_BYTES.ToString(),
ReportDate=mfr.REPL_DTM.ToString(),
NotifId= mfr.NOTIF_ID,
RecipAdd=nr.NOTIF_RECIP_ADDR
});
foreach(var repljoinmf_data in repljoinmf)
{
//DO STUFF
repljoinmf_data.NotifId = "Changedxyz";
//db.SubmitChanges();
}
}
}
我在执行repljoinmf_data.NotifId = "Changedxyz";
时遇到了错误。
错误信息为:Error 2 Property or indexer 'AnonymousType#3.NotifId' cannot be assigned to -- it is read only
请问有人可以帮我解决一下这个问题吗?我想是因为使用了匿名变量 var 所导致的。请大家给予帮助,感激不尽。
谢谢!
var
不是匿名的,它的意思是“让编译器决定类型”。 - D Stanley