8,497
社区成员
发帖
与我相关
我的任务
分享
SELECT *
FROM ActivityDetail d
join Activity a on d.ActivityId = a.Id
join Product p on d.ProductId = p.Id
join Purpose pu on a.PurposeId = pu.Id
left outer join Signature s on s.ActivityId = a.Id
var testQuery = from detail in ActivityDetailRepository.Table
join activity in ActivityRepository.Table on detail.ActivityId equals activity.Id into d_a
from da in d_a.DefaultIfEmpty()
join product in ProductRepository.Table on detail.ProductId equals product.Id into d_a_prodcut
from dap in d_a_prodcut.DefaultIfEmpty()
join purpose in PurposeRepository.Table on da.PurposeId equals purpose.Id into d_a_p_p
from dapp in d_a_p_p.DefaultIfEmpty()
join signautre in SignatureRepository.Table on detail.ActivityId equals signautre.ActivityId into final
from f in final.DefaultIfEmpty()
select new
{
ActivityId = da.Id,
ProductName = dap.ProductName,
PurposeName = dapp.PurposeName,
....
};
var testlist = testQuery.Skip(0).Take(100).ToList();
在 NHibernate.Linq.CacheableExpressionNode.Resolve(ParameterExpression inputParameter, Expression expressionToBeResolved, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionResolver.GetResolvedExpression(Expression unresolvedExpression, ParameterExpression parameterToBeResolved, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode.<>c__DisplayClass1.<GetResolvedOuterKeySelector>b__0(ExpressionResolver r)
在 Remotion.Linq.Parsing.Structure.IntermediateModel.ResolvedExpressionCache`1.GetOrCreate(Func`2 generator)
在 Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode.GetResolvedOuterKeySelector(ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode.CreateJoinClause(ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.IntermediateModel.GroupJoinExpressionNode.ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase.Apply(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.QueryParser.ApplyAllNodes(IExpressionNode node, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.QueryParser.ApplyAllNodes(IExpressionNode node, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.QueryParser.ApplyAllNodes(IExpressionNode node, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.QueryParser.ApplyAllNodes(IExpressionNode node, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.QueryParser.ApplyAllNodes(IExpressionNode node, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.QueryParser.ApplyAllNodes(IExpressionNode node, ClauseGenerationContext clauseGenerationContext)
在 Remotion.Linq.Parsing.Structure.QueryParser.GetParsedQuery(Expression expressionTreeRoot)
在 NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory, Boolean filter)
在 NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)
在 NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters)
在 NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow)
在 NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression)
在 NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression expression, IQuery& query, NhLinqExpression& nhQuery)
在 NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)
在 NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)
在 Remotion.Linq.QueryableBase`1.GetEnumerator()
在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
在 lambda_method(Closure , ControllerBase , Object[] )
在 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
在 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
var t1 = from d in (from detail in ActivityDetailRepository.Table
join activity in ActivityRepository.Table on detail.ActivityId equals activity.Id
join product in ProductRepository.Table on detail.ProductId equals product.Id
join purpose in PurposeRepository.Table on activity.PurposeId equals purpose.Id
select new
{
detail = detail,
activity = activity,
product = product,
purpose = purpose,
})
join signautre in SignatureRepository.Table on d.activity.Id equals signautre.ActivityId into temp
from t in temp.DefaultIfEmpty()
select new
{
ActivityId = d.activity.Id,
ProductName = d.product.ProductName,
PurposeName = d.purpose.PurposeName,
CurrentProductPensTotalCount = d.detail.CurrentProductPensTotalCount,
PensDetailList = d.detail.PensDetailList,
CreatedDate = d.activity.CreatedDate,
UpdatedDate = d.activity.UpdatedDate,
PensTotalCount = d.activity.PensTotalCount,
Signautre = t.Signature,
};
依然报错
无法将类型为“Remotion.Linq.Clauses.JoinClause”的对象强制转换为类型“Remotion.Linq.Clauses.FromClauseBase”
var testQuery2 = from detail in DetailRepository.Table
join activity in ActivityRepository.Table on detail.ActivityId equals activity.Id
join product in ProductRepository.Table on detail.ProductId equals product.Id
join purpose in PurposeRepository.Table on activity.PurposeId equals purpose.Id
join signature in rSignatureRepository.Table on activity.Id equals signature.ActivityId into temp
from t in temp.DefaultIfEmpty()
select new
{
ActivityId = activity.Id,
ProductName = product.ProductName,
PurposeName = purpose.PurposeName,
CreatedDate = activity.CreatedDate,
UpdatedDate = activity.UpdatedDate,
PensTotalCount = activity.PensTotalCount,
.......
};
error:
System.InvalidCastException”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理
其他信息: 无法将类型为“Remotion.Linq.Clauses.JoinClause”的对象强制转换为类型“Remotion.Linq.Clauses.FromClauseBase
var leftTable = from detail in DetailRepository.Table
join activity in ActivityRepository.Table on detail.ActivityId equals activity.Id
join product in Repository.Table on detail.ProductId equals product.Id
join purpose in PurposeRepository.Table on activity.PurposeId equals purpose.Id
select new
{
ActivityId = activity.Id,
ProductName = product.ProductName,
PurposeName = purpose.PurposeName,
CreatedDate = activity.CreatedDate,
UpdatedDate = activity.UpdatedDate,
PensTotalCount = activity.PensTotalCount,
.......
};
var finalQuery = from left in leftTable
join signature in SignatureRepository.Table on left.ActivityId equals signature.ActivityId into temp
from s in temp.DefaultIfEmpty()
select new
{
.......
};
错误如下:
System.InvalidCastException”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理
其他信息: 无法将类型为“Remotion.Linq.Clauses.JoinClause”的对象强制转换为类型“Remotion.Linq.Clauses.FromClauseBase
在 NHibernate.Linq.GroupJoin.GroupJoinAggregateDetectionVisitor.VisitQuerySourceReferenceExpression(QuerySourceReferenceExpression expression)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitExpression(Expression expression)
在 NHibernate.Linq.Visitors.NhExpressionTreeVisitor.VisitExpression(Expression expression)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberExpression(MemberExpression expression)
在 NHibernate.Linq.GroupJoin.GroupJoinAggregateDetectionVisitor.VisitMemberExpression(MemberExpression expression)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitExpression(Expression expression)
在 NHibernate.Linq.Visitors.NhExpressionTreeVisitor.VisitExpression(Expression expression)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitAndConvert[T](T expression, String methodName)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.<>c__DisplayClass6`1.<VisitAndConvert>b__5(T expression)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitAndConvert[T](ReadOnlyCollection`1 expressions, String callerName)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitNewExpression(NewExpression expression)
在 Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitExpression(Expression expression)
在 NHibernate.Linq.Visitors.NhExpressionTreeVisitor.VisitExpression(Expression expression)
在 NHibernate.Linq.GroupJoin.GroupJoinAggregateDetectionVisitor.Visit(IEnumerable`1 groupJoinClause, Expression selectExpression)
在 NHibernate.Linq.GroupJoin.AggregatingGroupJoinRewriter.IsAggregatingGroupJoin(QueryModel model, IEnumerable`1 clause)
在 NHibernate.Linq.GroupJoin.AggregatingGroupJoinRewriter.ReWrite(QueryModel model)
在 NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, Boolean root)
在 NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory, Boolean filter)
在 NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)
在 NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters)
在 NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow)
在 NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression)
在 NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression expression, IQuery& query, NhLinqExpression& nhQuery)
在 NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)
在 NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)
在 Remotion.Linq.QueryableBase`1.GetEnumerator()
在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
在 iDoctor.O2O.Service.FreePenService.GetActivityList(String userId, Int32 activityId, FreePenQueryParameter para)
在 iDoctor.O2O.Service.FreePenService.GetActivityDetailById(String userId, Int32 activityId)
在 iDoctor.O2O.Controllers.InterfaceController.GetActivityDetailById(String userId, Int32 activityId)
在 lambda_method(Closure , ControllerBase , Object[] )
在 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
在 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()