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)
查询有什么问题?
你错过了加入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)