NHibernate LINQ查询-对象引用未保存的临时实例-不保存
我在执行nHibernate LINQ查询时遇到了一个奇怪的异常。 如果我写NHibernate LINQ查询-对象引用未保存的临时实例-不保存,nhibernate,linq-to-nhibernate,Nhibernate,Linq To Nhibernate,我在执行nHibernate LINQ查询时遇到了一个奇怪的异常。 如果我写 var address=新地址{Id=Guid.Empty}; session.Query().Where(x=>x==address.ToList(); 比我得到的还多 对象引用未保存的临时实例-保存临时实例 实例,或将属性的级联操作设置为 可以让它自动保存的东西。类型:DomainModel.Address, 实体:DomainModel.Address 在 NHibernate.Engine.Foreig
var address=新地址{Id=Guid.Empty};
session.Query().Where(x=>x==address.ToList();
比我得到的还多 对象引用未保存的临时实例-保存临时实例 实例,或将属性的级联操作设置为 可以让它自动保存的东西。类型:DomainModel.Address, 实体:DomainModel.Address 在 NHibernate.Engine.ForeignKeys.GetEntityIdentifierIfNotUnsave(字符串 entityName、对象实体、ISessionImplementor会话)位于 NHibernate.Type.EntityType.GetIdentifier(对象值, ISessionImplementor会话)在 NHibernate.Type.ManyToOneType.NullSafeSet(IDbCommand cmd,Object 值,Int32索引,ISessionImplementor会话)位于 NHibernate.Param.NamedParameterSpecification.Bind(IDbCommand, IList
1 multiSqlQueryParametersList,Int32 singleSqlParametersOffset,
IList
1 SQLQueryParameters列表,QueryParameters QueryParameters,
ISessionImplementor会话)在
NHibernate.Param.NamedParameterSpecification.Bind(IDbCommand,
IList1 SQLQueryParameters列表,QueryParameters QueryParameters,
ISessionImplementor会话)在
NHibernate.SqlCommand.SqlCommandImpl.Bind(IDbCommand,
ISessionImplementor会话)在
NHibernate.Loader.Loader.PrepareQueryCommand(查询参数
查询参数、布尔滚动、ISessionImplementor会话)位于
NHibernate.Loader.Loader.DoQuery(ISessionImplementor会话,
QueryParameters QueryParameters,布尔返回代理)位于
NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor
会话,QueryParameters QueryParameters,布尔返回代理)位于
NHibernate.Loader.Loader.DoList(ISessionImplementor会话,
查询参数查询参数)位于
NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor
会话,查询参数查询参数)位于
NHibernate.Loader.Loader.List(ISessionImplementor会话,
QueryParameters QueryParameters,ISet
1查询空间,IType[]
结果类型)在
NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor
会话,查询参数查询参数)位于
NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor
会话,查询参数查询参数)位于
NHibernate.Engine.Query.HQLQueryPlan.PerformList(查询参数
查询参数、ISessionImplementor会话、IList结果)位于
NHibernate.Impl.SessionImpl.List(IQueryExpression查询表达式,
查询参数查询参数,IList结果)位于
NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression
queryExpression,QueryParameters参数)位于
NHibernate.Impl.ExpressionQueryImpl.List()位于
NHibernate.Linq.DefaultQueryProvider.ExecuteQuery(NhLinqExpression
nhLinqExpression、IQuery查询、nhLinqExpression nhQuery)位于
NHibernate.Linq.DefaultQueryProvider.Execute(表达式)在NHibernate.Linq.DefaultQueryProvider.Execute[TResult](表达式 表达式)位于Remotion.Linq.QueryableBase
1.GetEnumerator()处
System.Linq.Buffer
1..ctor(IEnumerable1源代码)位于
System.Linq.Enumerable.ToArray[TSource](IEnumerable
1源)
然而,如果我写
var person=newperson{Id=Guid.Empty};
session.Query().Where(x=>x==person.ToList();
一切正常。这两个类和相关映射之间的唯一区别是,地址使用