■96104 / inTopicNo.1) |
LINQでの追加whereメソッドが反映されない |
□投稿者/ jolly (1回)-(2020/10/21(Wed) 17:56:55)
|
分類:[ASP.NET (C#)]
VS2019+SQLServer2012でLINQの動きが理解できずに困っております。
■サンプルコード var test = from all in db.Test select new TestView { TestId = all.TestId, TestName = all.TestName }; test = test.Where(n => n.TestName.Contains("あ")); var test2 = test.ToList();
※「TestView」はビューモデルでTestIdとTestNameを定義しています。
■「db.Test」モデルの中身 TestId TestName 1 あああああ 2 いいいいい 3 ううううう
このコードで期待しているのは、test2 に「あああああ」の1件が入ることですが、 上記では3件すべてが取得されてしまいます。
下のコードのように、最初の抽出でToList()を行うと1件となります var test =( from all in db.Test select new TestView { TestId = all.TestId, TestName = all.TestName }).ToList();
こちらのURLやその他記事で解説されている動きと異なっている為、混乱しています。 https://www.buildinsider.net/web/bookaspmvc5/050302
ちなみにToList()を行う直前のtest変数の中身のSQL文をSQLServer上で実行すると正しく1件が抽出されます。
何か情報をお持ちの方いらっしゃいますでしょうか?
※足りない情報がありましたら補足しますのでお知らせください。
|
|