使用NHibernate + Active Record“表未映射”

时间:2009-12-27 21:17:56

标签: .net nhibernate activerecord castle-activerecord

我正在使用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未映射”

1 个答案:

答案 0 :(得分:2)

正如例外情况所说,你需要一个标有[ActiveRecord]的类来映射 votesonquestions (我猜它就像那样)表。

继承ActiveRecordBase是可选的。

在查询中,您只能引用映射的类(区分大小写),而不是表。所以在这种情况下,查询应该是:

session.CreateQuery("SELECT vote, COUNT(*) FROM VoteOnQuestion" +
                    " WHERE questionid = :questionId GROUP BY vote");