SubSonic InlineQuery 使用 ExecuteAsCollection 返回错误结果
使用 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();
循环遍历“matches”会导致“Media”表中的每个条目。
但是,当我这样做时:
IDataReader reader = new InlineQuery().ExecuteReader(q);
它返回正确的行。 为什么 ExecuteAsCollection 返回与 ExecuteReader 完全不同的内容? 还有其他人经历过这种奇怪的行为吗?
Using SubSonic 2.2, I have this query:
string q = @"SELECT Media.Id, Media.Title FROM Media WHERE Media.UserId = 7"
DAL.MediumCollection matches = new InlineQuery().ExecuteAsCollection<DAL.MediumCollection>(q).Load();
Looping through "matches" results in every single entry in the "Media" table.
However, when I do this:
IDataReader reader = new InlineQuery().ExecuteReader(q);
It returns the correct rows. Why is ExecuteAsCollection returning something completely different from ExecuteReader? Has anyone else experience this strange behavior?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为这是因为你正在调用 .Load()。 这会覆盖您原来的查询。
I think it's because you're calling .Load(). That's overwriting your original query.
ExecuteAsCollection() 应该做到这一点。
当您调用 Load() 方法时,就像执行 new DAL.MediumCollection().Load() 一样,返回表中的所有数据。
ExecuteAsCollection() should do it.
When you call the Load() method it's just like doing
new DAL.MediumCollection().Load()
that returns all the data in the table.