NHibernate抛出'无法解析属性'异常

Th3*_*B0Y 3 c# nhibernate fluent-nhibernate

我有以下属性以下公司(不包括Id):

    public virtual Category Category { get; set; }
Run Code Online (Sandbox Code Playgroud)

它映射到CompanyMap中,如下所示:

    HasOne(x => x.Category)
            .Cascade.All();
Run Code Online (Sandbox Code Playgroud)

类别只有以下属性:

    public virtual string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

CategoryMap:

    Map(x => x.Name)
            .Column("Name")
            .Length(40)
            .Unique();
Run Code Online (Sandbox Code Playgroud)

该表已在DB中成功创建.

我有一个包含以下查询的存储库:

            var test = Session.QueryOver<Company>()
                              .WhereRestrictionOn(dbCompany => dbCompany.Category.Name)
                              .IsLike(category.Name);
Run Code Online (Sandbox Code Playgroud)

category.name只是任何字符串.

然后我想访问数据库并获得结果:

    var result = test.List();
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

    could not resolve property: Category.Name of: My.Name.Space.Company
Run Code Online (Sandbox Code Playgroud)

查询有什么问题?

Naj*_*era 6

你错过了加入Category.

试试这个:

Category catAlias = null;

var test = Session.QueryOver<Company>()
    .Left.JoinAlias(x => x.Category, () => catAlias) // Left is optional
    .WhereRestrictionOn(() => catAlias.Name)
    .IsLike(category.Name);
Run Code Online (Sandbox Code Playgroud)