當試圖使用EntityFramework.Extended執行批量更新時,我得到兩個例外之一。實體框架擴展拋出DynamicProxy異常
望着example我想:
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.UpdateA ndExecute1(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 issue,我想:
var c = ((IObjectContextAdapter) context).ObjectContext.CreateObjectSet<ProcessJob>();
c.Update(job => new ProcessJob
{
Status = ProcessJobStatus.Processing,
StatusTime = DateTime.Now,
LogString = "Processing"
});
這會導致異常(如報告here大概相同的錯誤)
'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(Sy stem.Data.Entity.Core.Objects.ObjectQuery query)+ 0x9f bytes
EntityFramework.Extended.dll!EntityFramework.Extensions.BatchExtensions.Update(System.Linq.IQueryable source,System.Linq.Expressions.Expression> updateExpression )+ 0x1c8字節
我試過的最新版本爲EF5,並且我升級到EF6,看看最新版本的作品,但我得到了同樣的問題。我們使用Code First。
我不知道如何繼續,我已經開始嘗試瞭解EntityFramework.Extensions代碼如何工作。但我想知道我是否必須退回到使用存儲過程或SQL,這對我們的設置來說都不是理想的。
有沒有人知道這些問題是什麼,或者對如何解決發生的事情有任何想法?