DI(Ninject)で汎用リポジトリパターンを使用するEntityFrameworkでASP.NETMVC3を使用しています。
他のサイトが接続するメインプロジェクト(クラスライブラリ)があります。メインプロジェクトには、共通のテーブルに接続する独自のリポジトリと独自のコンテキスト(独自の.edmxファイル)があります。各サイトには、独自のテーブルに接続する独自のリポジトリがあります。私の問題は、両方のサイトテーブルとメインプロジェクトテーブルを組み合わせた複雑なlinqクエリを実行しようとすると、「同じクエリ内の異なるコンテキスト」例外が発生することです。教えてください、私は何が間違っているのですか?
例外タイプ:
システムnotSupported例外
例外メッセージ:
指定されたLINQ式には、さまざまなコンテキストに関連付けられているクエリへの参照が含まれています。
これはstackTraceです:
System.Data.Objects.ELinq.Funcletizer.FuncletizingVisitor.InlineValue(Expression expression、Boolean recompileOnChange)at System.Data.Objects.ELinq。のSystem.Data.Objects.ELinq.Funcletizer.FuncletizingVisitor.InlineObjectQuery(ObjectQuery inlineQuery、Type expressionType) Funcletizer.FuncletizingVisitor.Visit(Expression exp)at System.Linq.Expressions.EntityExpressionVisitor.VisitExpressionList(ReadOnlyCollection'1 original)at System.Linq.Expressions.EntityExpressionVisitor.VisitMethodCall(MethodCallExpression m)at System.Linq.Expressions.EntityExpressionVisitor System.Linq.ExpressionsのSystem.Linq.Expressions.EntityExpressionVisitor.VisitLambda(LambdaExpression lambda)のSystem.Data.Objects.ELinq.Funcletizer.FuncletizingVisitor.Visit(Expression exp)の式exp)。System.Linq.Expressions.EntityExpressionVisitor.VisitUnary(UnaryExpression u)at System.Linq.Expressions.EntityExpressionVisitor.Visitor.Visit(Expression exp)at System.Linq.Expressions.EntityExpressionVisit(Expression exp)at System.Linq. System.Linq.Expressions.EntityExpressionVisitor.VisitMethodCall(MethodCallExpression m )at System.Linq.Expressions.EntityExpressionVisitor.Visit(Expression exp)at System.Data.Objects.ELinq.Funcletizer.FuncletizingVisitor.Visit(Expression exp)at System.Data.Objects.ELinq.Funcletizer.Funcletize(Expression expression、Func '1&recompileRequired)at System.Data.Objects.ELinq.ExpressionConverter..ctor(Funcletizer funcletizer、Expression expression)at System.Data.Objects.ELinq.ELinqQueryState.CreateExpressionConverter()at System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan( System.Data.Objects.ObjectQuery'1.GetResults(Nullable'1 forMergeOption)at System.Data.Objects.ObjectQuery'1.System.Collections.Generic.IEnumerable.GetEnumerator()atSystem.DataのNullable'1forMergeOption)。 Entity.Internal.Linq.InternalQuery'1.GetEnumerator()システムのSystem.Data.Objects.ObjectQuery'1.System.Collections.Generic.IEnumerable.GetEnumerator()のSystem.Data.Objects.ObjectQuery'1.GetResults(Nullable'1 forMergeOption)のGetExecutionPlan(Nullable'1 forMergeOption) Data.Entity.Internal.Linq.InternalQuery'1.GetEnumerator()システムのSystem.Data.Objects.ObjectQuery'1.System.Collections.Generic.IEnumerable.GetEnumerator()のSystem.Data.Objects.ObjectQuery'1.GetResults(Nullable'1 forMergeOption)のGetExecutionPlan(Nullable'1 forMergeOption) Data.Entity.Internal.Linq.InternalQuery'1.GetEnumerator()
System.Data.Entity.Infrastructure.DbQuery'1.System.Collections.Generic.IEnumerable.GetEnumerator()でSystem.Linq.SystemCore_EnumerableDebugView'1.get_Items()で