EntityFramework.Extended を使用して一括更新を実行しようとすると、2 つの例外のうちの 1 つが発生します。
私が試し た例を見ると:
context.ProcessJobs.Where(job => true).Update(job => new ProcessJob
{
Status = ProcessJobStatus.Processing,
StatusTime = DateTime.Now,
LogString = "Processing"
});
次の例外が発生しました。
「EntityFramework.Reflection.DynamicProxy」には「InternalQuery」の定義が含まれていません
...
System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute1(System.Runtime.CompilerServices.CallSite サイト、オブジェクト arg0) + 0x153 バイト
EntityFramework.Extended.dll!EntityFramework.Extensions.ObjectQueryExtensions.ToObjectQuery(System.Linq.IQueryable クエリ) + 0x2db バイト
EntityFramework.Extended.dll!EntityFramework.Extensions.BatchExtensions.Update(System.Linq.IQueryable ソース、System.Linq.Expressions.Expression> updateExpression) + 0xe9 バイト
EntityFramework.Extended.dll!EntityFramework.Extensions.BatchExtensions.Update(System.Linq.IQueryable ソース、System.Linq.Expressions.Expression> updateExpression) + 0xe9 バイト
githubの問題に基づいて、試しました:
var c = ((IObjectContextAdapter) context).ObjectContext.CreateObjectSet<ProcessJob>();
c.Update(job => new ProcessJob
{
Status = ProcessJobStatus.Processing,
StatusTime = DateTime.Now,
LogString = "Processing"
});
その結果、例外が発生します (おそらく、ここで報告されたものと同じエラー)
「EntityFramework.Reflection.DynamicProxy」には「EnsureMetadata」の定義が含まれていません
...
EntityFramework.Extended.dll!EntityFramework.Mapping.ReflectionMappingProvider.FindMappingFragment(System.Collections.Generic.IEnumerable itemCollection, System.Data.Entity.Core.Metadata.Edm.EntitySet entitySet) + 0xc1e バイト
EntityFramework.Extended.dll!EntityFramework.Mapping.ReflectionMappingProvider.CreateEntityMap(System.Data.Entity.Core.Objects.ObjectQuery クエリ) + 0x401 バイト
EntityFramework.Extended.dll!EntityFramework.Mapping.ReflectionMappingProvider.GetEntityMap(System.Data.Entity.Core.Objects.ObjectQuery クエリ) + 0x58 バイト
EntityFramework.Extended.dll!EntityFramework.Mapping.MappingResolver.GetEntityMap(System.Data.Entity.Core.Objects.ObjectQuery クエリ) + 0x9f バイト
EntityFramework.Extended.dll!EntityFramework.Extensions.BatchExtensions.Update(System.Linq.IQueryable ソース、System.Linq.Expressions.Expression> updateExpression) + 0x1c8 バイト
EF5 の最新バージョンを試し、最新バージョンが機能するかどうかを確認するために EF6 にアップグレードしましたが、同じ問題が発生します。Code First を使用します。
EntityFramework.Extensions コードがどのように機能するかを理解しようとしています。しかし、私たちのセットアップには理想的ではないストアド プロシージャまたは SQL の使用にフォールバックする必要があるかどうか疑問に思っています。
これらの問題が何であるかを知っている人はいますか?