我正在使用ActiveRecord Facility的Active Record,并且我正在尝试使用自定义的NHibernate查询。我是否需要为类定义映射,即使它扩展了ActiveRecordBase并具有ActiveRecord属性?
[ActiveRecord("VotesOnQuestions")]
public class VoteOnQuestion : ActiveRecordBase<VoteOnQuestion>
{
[CompositeKey]
public VoteKey Key { get; set; }
[Property]
public VoteType Vote { get; set; }
}
我正在尝试创建以下查询:
session.CreateQuery("SELECT vote, COUNT(*) FROM votesonquestions" +
" WHERE questionid = :questionId GROUP BY vote");
但我得到了这个例外:
“votesonquestions未映射”
答案 0 :(得分:2)
正如例外情况所说,你需要一个标有[ActiveRecord]
的类来映射 votesonquestions (我猜它就像那样)表。
继承ActiveRecordBase
是可选的。
在查询中,您只能引用映射的类(区分大小写),而不是表。所以在这种情况下,查询应该是:
session.CreateQuery("SELECT vote, COUNT(*) FROM VoteOnQuestion" +
" WHERE questionid = :questionId GROUP BY vote");