相关疑难解决方法(0)

JoinQueryOver和JoinAlias有什么区别?

我需要知道JoinQueryOver和JoinAlias之间的区别是什么,以及何时使用它们?

谢谢.

nhibernate queryover

86
推荐指数
2
解决办法
3万
查看次数

未映射Id时,按Id列表加载实体的正确方法

我有以下代码

string idName = builder.IdentifierName;
Disjunction disjunction = Restrictions.Disjunction();
IList ids = new ArrayList(entityInfos.Length);
foreach (var entityInfo in entityInfos)
{
    ids.Add(entityInfo .Id);
}
disjunction.Add(Restrictions.In(idName, ids));
criteria.Add(disjunction);
criteria.List();
Run Code Online (Sandbox Code Playgroud)

(我还没写过,它是来自NHibernate.Search的简化代码)

idName是正确的("Id").

在我的映射中,我没有将Id映射到实体属性,它只是DB:

<id column="Id" type="int">
  <generator class="native" />
</id>
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,它会抛出异常:

[QueryException: could not resolve property: Id of: MyType]
   NHibernate.Persister.Entity.AbstractPropertyMapping.ToType(String propertyName) +326
   NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetTypeUsingProjection(ICriteria subcriteria, String propertyName) +416
   NHibernate.Criterion.InExpression.AssertPropertyIsNotCollection(ICriteriaQuery criteriaQuery, ICriteria criteria) +41
   NHibernate.Criterion.InExpression.ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary`2 enabledFilters) +49
   NHibernate.Criterion.Junction.ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary`2 enabledFilters) +448
   NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(IDictionary`2 enabledFilters) +354 …
Run Code Online (Sandbox Code Playgroud)

nhibernate criteria nhibernate-mapping nhibernate.search

0
推荐指数
1
解决办法
1695
查看次数