使用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完全不同的东西?还有其他人遇到过这种奇怪的行为吗?
答案 0 :(得分:2)
我认为这是因为你正在调用.Load()。这会覆盖原始查询。
答案 1 :(得分:0)
ExecuteAsCollection()应该这样做。
当你调用Load()方法时,它就像执行new DAL.MediumCollection().Load()
一样,返回表中的所有数据。