1

エンティティへの linq は初めてで、contain メソッドの使用に問題があります。これが私のDBのサンプルテーブルです。

DataTable UserTable = new DataTable();
UserTable .Columns.Add("ID", typeof(int));
UserTable .Columns.Add("Name", typeof(string));

UserTable .Rows.Add(1,"Tom");
UserTable .Rows.Add(2,"Tom_dad");
UserTable .Rows.Add(3,"Tom_mom");
UserTable .Rows.Add(4,"Tom_sister");

エンティティへのLinqで、私はステートメントを書きました

entities edm = new entities();
var query= from a in edm .UserTable 
           where a.Name.Contains("Tom")
           select a;

結果は、名前が正確に Tom である最初の行のみです。

4 行を含む結果を取得するにはどうすればよいですか? SQL LIKE メソッド %Tom% など。

助けてくれてありがとう。

環境: VS2010 / .Net FrameWork4

//アップデート//

ベン・ミレーンに感謝します。ステートメントの後ろに ToList() を追加すると機能します。

var query= (from a in edm .UserTable 
               where a.Name.Contains("Tom")
               select a).ToList();

2つのステートメントの違いは何ですか? なぜこの改善が機能するのか不思議です。

4

1 に答える 1

3

試す

entities edm = new entities();
var query= (from a in edm .UserTable 
       where a.Name.Contains("Tom")
       select a).ToList();

それは動作しますか?

于 2013-08-27T15:46:17.227 に答える