NHibernate投掷'无法解决财产问题。例外

时间:2015-04-21 17:30:01

标签: c# nhibernate fluent-nhibernate

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

    public virtual Category Category { get; set; }

它映射在这样的公司地图中:

    HasOne(x => x.Category)
            .Cascade.All();

类别只有属性:

    public virtual string Name { get; set; }

CategoryMap:

    Map(x => x.Name)
            .Column("Name")
            .Length(40)
            .Unique();

该表已在数据库中成功创建。

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

            var test = Session.QueryOver<Company>()
                              .WhereRestrictionOn(dbCompany => dbCompany.Category.Name)
                              .IsLike(category.Name);

category.name只是任何字符串。

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

    var result = test.List();

我得到以下异常:

    could not resolve property: Category.Name of: My.Name.Space.Company

查询结果有什么问题?

1 个答案:

答案 0 :(得分: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);