這似乎是在編譯下面的linq查詢時出現錯誤。我已經閱讀了一些類似的問題,但都強調使用.Any()函數而不是.Contains()..但是,儘管如此,似乎編譯該語句時出現錯誤,並且會記錄一個異常。System.NotSupportedException:無法創建一個常量值的type_.Only原語和......此上下文
這是結: -
int result=0;
result = (from u in objContext.CLG_challengeMaster
where u.appId == applicationId
&& objContext.CLG_taskDetail.Any(e => e.challengeId == u.id)
&& !objContext.CLG_challengeDetail.Any(e => e.challengeId == u.id && (e.userId == null && e.groupId == null && e.appGroupId == null && e.roleId == null))
select u).Count();
這是錯誤日誌:
Message: System.NotSupportedException: Unable to create a constant value of type 'DataAccess.Entities.Models.CLG_taskDetail'. Only primitive types or enumeration types are supported in this context.
at System.Data.Objects.ELinq.ExpressionConverter.ConstantTranslator.TypedTranslate(ExpressionConverter parent, ConstantExpression linq)
at System.Data.Objects.ELinq.ExpressionConverter.TypedTranslator`1.Translate(ExpressionConverter parent, Expression linq)
at System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq)
at System.Data.Objects.ELinq.ExpressionConverter.NewArrayInitTranslator.<>c__DisplayClass0.<TypedTranslate>b__1(Expression e)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Data.Common.CommandTrees.ExpressionBuilder.Internal.EnumerableValidator`3.Validate(IEnumerable`1 argument, String argumentName, Int32 expectedElementCount, Boolean allowEmpty, Func`3 map, Func`2 collect, Func`3 deriveName)
at System.Data.Common.CommandTrees.ExpressionBuilder.Internal.EnumerableValidator`3.Validate().........
誰能plz幫助。
在這一行
最後只好將它分解和重建它: ( –