SubSonic InlineQuery使用ExecuteAsCollection返回错误的结果

时间:2009-06-09 05:07:57

标签: subsonic executereader

使用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完全不同的东西?还有其他人遇到过这种奇怪的行为吗?

2 个答案:

答案 0 :(得分:2)

我认为这是因为你正在调用.Load()。这会覆盖原始查询。

答案 1 :(得分:0)

ExecuteAsCollection()应该这样做。

当你调用Load()方法时,它就像执行new DAL.MediumCollection().Load()一样,返回表中的所有数据。