我有两个实体:
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'。 “}
有什么建议吗?还有其他方法吗?
祝福, 安德鲁
答案 0 :(得分:3)
看起来您的Authority实体的映射文件正在将Type
属性与Authority实体映射到的任何表中的名为TypeFk
的列相关联。出于某种原因,该列不在那里。
查看映射文件可能会有所帮助。