我拥有以下属性的以下公司(不包括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
查询结果有什么问题?
答案 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);