SubSonic InlineQuery 使用 ExecuteAsCollection 返回错误结果

发布于 2024-07-22 20:49:04 字数 476 浏览 4 评论 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();

循环遍历“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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

电影里的梦 2024-07-29 20:49:04

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

I think it's because you're calling .Load(). That's overwriting your original query.

微凉 2024-07-29 20:49:04

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文