Я реализует подключаемую приложение MVC, описанное в этой статье: http://blog.longle.net/2012/03/29/building-a-composite-mvc3-application-with-pluggable-areas/#pluginEntity Framework проблема с плагином ASP.MVC архитектуры
В основном это имеет один главный веб-приложение (ASP.MVC 4) и некоторое количество суб-веб-приложений которые используют библиотеки классов в качестве их слоев (DAL, BLL).
У меня возникла следующая проблема. У меня есть модель сущности (edmx), определенная в библиотеке классов SubProject1.DataAccess. Затем у меня есть проект SubProject1.Web, и, наконец, у меня есть основной веб-проект. SubProject1.Web имеет следующее postbuild событие заявило:
xcopy "$(ProjectDir)\Views" "$(TargetDir)\SubProject1\Views\" /s /i /y
Это также основной веб-приложение \Areas
каталога устанавливается в качестве выходного пути.
Когда я пытаюсь получить доступ к какому-то объекту из DbContext объект по Entity Framework бросает следующее исключение:
Невозможно загрузить указанный ресурс метаданных.
StackTrace:
на System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources (String AssemblyName, Строка ResourceName, ICollection uriRegistry, MetadataArtifactAssemblyResolver распознаватель) при System.Data. Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader (String path, ExtensionCheck extensionCheck, String validExtension, ICollection uriRegistry, MetadataArtifactAssemblyResolver распознаватель) при System.Data.Metadata.Edm.MetadataCache.SplitPaths (String путей) на System.Data.Common.Utils.Memoizer
2.<>c__DisplayClass2.<Evaluate>b__0() at System.Data.Common.Utils.Memoizer
2.Result.GetValue() в System.Data.Common. Utils.Memoizer2.Evaluate(TArg arg) at System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections) at System.Data.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection() at System.Data.Objects.ObjectContext..ctor(EntityConnection connection, Boolean isConnectionConstructor) at System.Data.Objects.ObjectContext..ctor(EntityConnection connection)
1.Initialize() в System.Data.Entity.Internal.Linq.InternalSet
at System.Data.Entity.Internal.InternalConnection.CreateObjectContextFromConnectionModel() at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel() at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) at System.Data.Entity.Internal.Linq.InternalSet1.GetEnumerator() at System.Data.Entity.Infrastructure.DbQuery
1.System.Collections.Generic.IEnumerable.GetEnumerator() на System.Collections.Generic.List1..ctor(IEnumerable
1 сборник)
в System.Linq.Enumerable.ToList [TSource] (IEnumerable1 source) at SubProject1.DataAccess.DataSources.OracleDb.OracleDb.get_Administrators() in c:\somepath\SubProject1.DataAccess\DataSources\OracleDb\OracleDb.cs:line 60 at SubProject1.Web.Controllers.SubTestController.Index() in d:\somepath\SubProject1.Web\Controllers\SubTestController.cs:line 16
2 параметра) в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
at lambda_method(Closure , ControllerBase , Object[]) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41() at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8
1.b__7 (IAsyncResult _) в System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
на System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod (IAsyncResult AsyncResult) в System.Web.Mvc.Async.AsyncControllerActionInvoker. <> c__DisplayClass37. <> c__DisplayClass39.b__33() at System.Web.Mvc.Async.AsyncControllerActionInvoker. <> c__DisplayClass4f.b__49()
Похоже, что EF не может найти местоположение файла edmx. Кто-нибудь знает, как я могу решить эту проблему?
Поместите правильную строку подключения Entity Framework в свой web.config. – CodeCaster