0

SubSonic 2.2 を使用して、次のクエリがあります。

string q = @"SELECT Media.Id, Media.Title FROM Media WHERE Media.UserId = 7"
DAL.MediumCollection matches = new InlineQuery().ExecuteAsCollection<DAL.MediumCollection>(q).Load();

「一致」をループすると、「メディア」テーブルのすべてのエントリが生成されます。

ただし、これを行うと:

IDataReader reader = new InlineQuery().ExecuteReader(q);

正しい行を返します。ExecuteAsCollection が ExecuteReader とはまったく異なるものを返すのはなぜですか? 他の誰かがこの奇妙な動作を経験しましたか?

4

2 に答える 2

2

.Load() を呼び出しているためだと思います。それは元のクエリを上書きしています。

于 2009-06-09T06:43:03.237 に答える
0

ExecuteAsCollection()がそれを行う必要があります。

new DAL.MediumCollection().Load()Load()メソッドを呼び出すと、テーブル内のすべてのデータを返すのと同じです。

于 2009-06-09T21:00:54.803 に答える