NHibernate 抛出 'could not resolve property' 异常
NHibernate throwing 'could not resolve property' exception
我有以下公司,其属性如下(不包括 Id):
public virtual Category Category { get; set; }
在 CompanyMap 中映射如下:
HasOne(x => x.Category)
.Cascade.All();
该类别只有属性:
public virtual string Name { get; set; }
分类图:
Map(x => x.Name)
.Column("Name")
.Length(40)
.Unique();
数据库中table创建成功。
我有一个包含以下查询的存储库:
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
查询结束有什么问题?
您缺少 Category
的连接。
试试这个:
Category catAlias = null;
var test = Session.QueryOver<Company>()
.Left.JoinAlias(x => x.Category, () => catAlias) // Left is optional
.WhereRestrictionOn(() => catAlias.Name)
.IsLike(category.Name);
我有以下公司,其属性如下(不包括 Id):
public virtual Category Category { get; set; }
在 CompanyMap 中映射如下:
HasOne(x => x.Category)
.Cascade.All();
该类别只有属性:
public virtual string Name { get; set; }
分类图:
Map(x => x.Name)
.Column("Name")
.Length(40)
.Unique();
数据库中table创建成功。
我有一个包含以下查询的存储库:
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
查询结束有什么问题?
您缺少 Category
的连接。
试试这个:
Category catAlias = null;
var test = Session.QueryOver<Company>()
.Left.JoinAlias(x => x.Category, () => catAlias) // Left is optional
.WhereRestrictionOn(() => catAlias.Name)
.IsLike(category.Name);