【发布时间】:2011-07-18 15:08:49
【问题描述】:
伙计们,
我几乎到处都在搜索过这个问题(也许我不知道正确的关键字。)我需要你的帮助!
关系很简单,我有两个Activerecord Domain:Team和User,它们之间有HasAndBelongsToMany关系。
我现在的要求是查询 Team.Id = 4 的用户数并查询 Team.Id = 4 的用户列表。所以我正在做类似的事情:
DetachedCriteria c = DetachedCriteria.For<Models.User>()
.AddOrder(Order.Desc("RegisterTime"))
.CreateAlias("Teams", "teams")
.Add(Expression.Eq("teams.Id", 4));
int count = ActiveRecordMediator<Models.User>.Count(c);
IList<Models.User> users = Models.User.FindAll(c);
计数被正确检索,但对于列表查询,我得到异常:
Exception Details: System.InvalidCastException: At least one element in the source array could not be cast down to the destination array type.
如果我单独使用它们。他们都是正确的。但是当我一个接一个地使用它们时。例外来了。这就像 DetachedCriteria 不应在两个查询中紧密使用。这是为什么呢?
正确的做法是什么?
需要你的帮助!
【问题讨论】:
标签: nhibernate count castle-activerecord detachedcriteria findall