Hello,
Please, I need your help.
I'm trying to implement the equivalent of an SQL NOT IN using Linq but the following query throws an exception:
LINQ Query:
var query = from family in UnitOfWorkHolder.Current.ArticleFamilies
where !(
from cfp in UnitOfWorkHolder.Current.CustomerFamilyPricings
where cfp.Customer.Id == 20
select cfp.ArticleFamily.Id
).Contains(family.Id)
select family;
Exception :
projection too complex to be supported in a subquery
à Mindscape.LightSpeed.Linq.Plan.SingleQueryPlan.ApplyProjectionsForSubquery(IUnitOfWork unitOfWork) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Plan\SingleQueryPlan.cs:ligne 291
à Mindscape.LightSpeed.Linq.Sqo.Contains.GetCriteria(LinqQueryPlanExpression existingPlan, IEnumerable`1 arguments) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\Contains.cs:ligne 82
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractMethodCriteria(LinqQueryPlanExpression plan, MethodCallExpression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 40
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteriaCore(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 152
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteria(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 97
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteriaCore(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 132
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteria(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 97
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteriaCore(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 125
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteria(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 97
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteriaCore(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 139
à Mindscape.LightSpeed.Linq.Sqo.CriteriaSqo.ExtractCriteria(LinqQueryPlanExpression plan, Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\CriteriaSqo.cs:ligne 97
à Mindscape.LightSpeed.Linq.Sqo.Where.ExtractWhereCriteria(MethodCallExpression expression, LinqQueryPlanExpression plan, GroupResultsPlan groupPlan) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\Where.cs:ligne 141
à Mindscape.LightSpeed.Linq.Sqo.Where.Evaluate(ExpressionVisitor visitor, MethodCallExpression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Sqo\Where.cs:ligne 37
à Mindscape.LightSpeed.Linq.Plan.LinqQueryBuilder.VisitMethodCall(MethodCallExpression exp) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Plan\LinqQueryBuilder.cs:ligne 74
à Mindscape.LightSpeed.Linq.Plan.LinqQueryBuilder.Visit(Expression exp) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Plan\LinqQueryBuilder.cs:ligne 32
à Mindscape.LightSpeed.Linq.Plan.LinqQueryBuilder.Build(Expression translation, LinqQueryProvider provider) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Plan\LinqQueryBuilder.cs:ligne 24
à Mindscape.LightSpeed.Linq.LinqQueryProvider.GetExecutionPlan(Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\QueryProvider.cs:ligne 114
à Mindscape.LightSpeed.Linq.LinqQueryProvider.Execute(Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\QueryProvider.cs:ligne 76
à Mindscape.LightSpeed.Linq.LinqQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\QueryProvider.cs:ligne 60
à Mindscape.LightSpeed.Linq.LinqQuery`1.GetEnumerator() dans C:\Program Files\Mindscape\LightSpeed\SourceCode\LightSpeedSource\Src\Framework.Linq\Query.cs:ligne 57
à System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
à System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
à Server.Model.Customer.OnSaving(CancelEventArgs e) dans D:\Transit\Project\Mediacom\Server\Model\Customer.cs:ligne 22
Thanks in advance.