C# - VS 2017 - LINQ to Entities 我需要拉取一些数据,逐步通过每个项目,并且如果它符合某个标准,则更改一个标志。linq更改结果集的值
我知道这是因为匿名类型 - 我已经阅读了几篇关于它的文章,但我不知道如何解决它。
我需要改变从假到真。 这里就是我得到的数据:
var RMA_stops_all = (from rma in rDb.DistributionStopInformations
join line in rDb.DistributionLineItems on rma.UniqueIdNo equals line.UniqueIdNo
where line.RmaNumber != null
&& (line.DatetimeCreated > Convert.ToDateTime(dateToCheck_rma)
&& line.DatetimeCreated < Convert.ToDateTime(dateToCheck_rma).AddDays(7))
&& rma.CustomerNo == TNGCustNo
select new
{
line.DatetimeCreated,
rma.UniqueIdNo,
line.RmaNumber,
line.RmaOriginalUniqueId,
line.ItemSequenceNo,
line.ItemNumber,
good = false
}).ToArray();
和这里是我经历的每一项步骤:
foreach (var testRma in RMA_stops_all)
{
if (testRma.RmaNumber.Contains("/078"))
{
testRma.good = true;
}
}
错误说:
“属性或索引“匿名类型:DateTime?DatetimeCreated, decimal UniqueIdNo,string RmaNumber,decimal?RmaOriginalUniqueId, decimal ItemSequenceNo,string ItemNumber,bool good> .good'can not被 分配到 - 它是只读”
我需要改变我的LINQ
还是我foreach
?
这应该没问题,但正如我所说的,您在查询中使用过滤器“where line.RmaNumber!= null”,因此无论如何都不会得到空值。你可以把这个部分留下。 –
谢谢你...一个更多的澄清 - 任何问题与我使用当前字段名称 - IE:UniqueIdNo = rma.UniqueIdNo与uniqueID和RmaNumber与rmaNumber? –
无论什么名字适合你,我只是习惯于明确地命名它们。 –