Jud*_*ude 6 c# linq asp.net anonymous-types
我想从linq创建一个匿名类型.然后手动更改单个属性(status)的值,并将列表作为数据源提供给转发器.但是不要让我这样做因为它是只读的.有什么建议吗?
var list = from c in db.Mesai
join s in db.MesaiTip on c.mesaiTipID equals s.ID
where c.iseAlimID == iseAlimID
select new
{
tarih = c.mesaiTarih,
mesaiTip = s.ad,
mesaiBaslangic = c.mesaiBaslangic,
mesaiBitis = c.mesaiBitis,
sure = c.sure,
condition = c.onaylandiMi,
status = c.status
};
foreach (var item in list)
{
if (item.condition==null)
{
item.status == "Not Confirmed";
}
}
rpCalisanMesai.DataSource = list.ToList();
rpCalisanMesai.DataBind();
Run Code Online (Sandbox Code Playgroud)
创建列表后,只需设置正确的值,而不是在创建列表后尝试更改值.
var list = from c in db.Mesai
join s in db.MesaiTip on c.mesaiTipID equals s.ID
where c.iseAlimID == iseAlimID
select new
{
tarih = c.mesaiTarih,
mesaiTip = s.ad,
mesaiBaslangic = c.mesaiBaslangic,
mesaiBitis = c.mesaiBitis,
sure = c.sure,
condition = c.onaylandiMi,
status = c.onaylandiMi != null ? c.status : "Not Confirmed"
};
Run Code Online (Sandbox Code Playgroud)
此外,如果您可以更改属性,您的问题将是执行两次查询:首先在foreach-loop中,然后再次调用list.ToList()(这将创建匿名类型的新实例).