Я пытался создать «представления», чтобы повысить производительность моего приложения. Приложение Silverlight 4, связанное с службами RIA для Сервера. Серверное приложение началось с EF 4.1 + RIA Services. Я установил «EF Power Tools Beta 3 v0.7.0.0» и мог без проблем генерировать мои представления. Но вскоре я понял, что EF 4.1. не смог извлечь выгоду из предварительно скомпилированных представлений. EF> = 4.2. Через NuGet я увидел обновление для RIA Services (RIAServices.EntityFramework.4.2.0), которые используются EF 5. инсталлированы и получил все работает, но когда я пытаюсь генерировать взгляды я получаю исключение:PowerTools Beta 3 не работает
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Я попытался переустановить PowerTools. Не повезло Я загрузил исходный код для PowerTools и отладил Исключение. По-видимому, PowerTools пытался и не мог найти старую версию EF. Свойство LoaderExceptions чтения:
{System.IO.FileNotFoundException: Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
Я исследовал PublicKeyToken и подтвердил, что это так же, как EF 5 (EF 4.4 TARGET = .NET 4) длл найти в моей «бен» выходной карты. Но PowerTools ищет EF 4.1 .. почему?
Мой файл web.config имеет это:
<sectionGroup name="system.serviceModel">
<section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" allowDefinition="MachineToApplication" requirePermission="false" />
</sectionGroup>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
и:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0" />
</dependentAssembly>
</assemblyBinding>
Я также испытал изменения PublicKeyToken в Web.config только подтвердите, что я получил еще одну ошибку от PowerTools, поэтому PowerTools, похоже, анализирует мой Web.config.