При попытке делать массовые обновления с использованием EntityFramework.Extended я получаю одно из двух исключений.Сущность Framework расширенные броски Исключение 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. длл! 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 запрос) + 0x9F байт
EntityFramework.Extended.dll! EntityFramework.Extensions.BatchExtensions.Update (System.Linq.IQueryable источник, System.Linq.Expressions.Expression> updateExpression) + 0x1c8 bytes
Я пробовал последнюю версию для EF5, и я обновился до EF6, чтобы увидеть, работает ли последняя версия, но у меня такая же проблема. Мы используем Code First.
Я не уверен, как это сделать, я начал пытаться понять, как работает код EntityFramework.Extensions. Но мне интересно, придется ли мне вернуться к использованию хранимой процедуры или SQL, которые не идеальны для нашей установки.
Кто-нибудь знает, что это за проблемы, или есть идеи о том, как выработать то, что происходит?