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、文字列RmaNumber、小数点?RmaOriginalUniqueId、 小数点以下ItemSequenceNo、文字列ItemNumber、bool good> .good 'できません。割り当てられた こと - それは
「読み取り専用です、私は私のLINQ
や私foreach
を変更する必要がありますか?
これはうまくいくはずですが、私が言ったように、あなたはあなたのクエリで 'where line.RmaNumber!= null'というフィルタを使用しているので、とにかくNULLが得られません。あなたはその部分を放置することができます。 –
ありがとうございます...もう1つの説明 - 現在のフィールド名を使用して私の問題 - IE:UniqueIdNo = rma.UniqueIdNo対ユニークIDとRmaNumberとrmaNumber? –
あなたの名前が何であれ、明示的に名前を付ける習慣にすぎません。 –