NHibernate标准按ID查找

时间:2010-04-30 16:05:20

标签: nhibernate criteria

我有两个实体:

public class Authority : Entity
{
    [NotNull, NotEmpty]
    public virtual string Name { get; set; }

    [NotNull]
    public virtual AuthorityType Type { get; set; }

}

public class AuthorityType : Entity
{
    [NotNull, NotEmpty]
    public virtual string Name { get; set; }

    public virtual string Description { get; set; }
}

现在我希望按类型从存储库中找到所有权限。我尝试这样做:

    public IList<Authority> GetAuthoritiesByType(int id)
    {
        ICriteria criteria = Session.CreateCriteria(typeof (Authority));
        criteria.Add(Restrictions.Eq("Type.Id", id));
        IList<Authority> authorities = criteria.List<Authority>();
        return authorities;            
    }

但是,我收到一条错误,指出SQL出现了问题(“无法执行查询”。不足之处如下:{“无效的列名'TypeFk'。\ r \ n无效的列名'TypeFk'。 “}

有什么建议吗?还有其他方法吗?

祝福, 安德鲁

1 个答案:

答案 0 :(得分:3)

看起来您的Authority实体的映射文件正在将Type属性与Authority实体映射到的任何表中的名为TypeFk的列相关联。出于某种原因,该列不在那里。

查看映射文件可能会有所帮助。