Я понимаю, что этот вопрос задавался и решался здесь много раз, и что есть много полезных сообщений, таких как этот... http://blogs.teamb.com/craigsuntz/2010/08/13/38628/ Но, к сожалению, ни одно из предложений не сработало для меня, поэтому я публикую в надежде, что кто-то заметит что-то, чего я не видел.
У меня есть проект базы данных Sp_CodeGenerator — я подключился к базе данных. Моя строка подключения
<add name="AdWorksLTEntities" connectionString="metadata=res://*/Sp_CodeGenerator.Model1.csdl|res://*/Sp_CodeGenerator.Model1.ssdl|res://*/Sp_CodeGenerator.Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=EIRCOM;Initial Catalog=AdventureWorksLT2008R2;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework"" providerName="System.Data.EntityClient"/>
Я попытался заменить //*/Sp_CodeGenerator.Model...
именем dll //Sp_CodeGenerator/Sp_CodeGenerator.Model.csdl
и т. д., но это не сработало.
Я также удалил все ссылки в файле .config, удалил файл .edmx и файлы шаблонов, сгенерированные Entity Frameworks, и запускал их много раз, но это не работает.
В своей структуре каталогов я вижу, что файлы edmx: Model1.csdl, Model1.msl, Model1.ssdl размещены в папке с именем edmxResourcesToEmbed, и их можно найти в C:\Sp_CodeGenerator\Sp_CodeGenerator\obj\x86.
Таким образом, полный путь: C:\Sp_CodeGenerator\Sp_CodeGenerator\obj\x86\Debug\edmxResourcesToEmbed.
Я не уверен, что это совпадение, но как только проблема появилась, я также заметил, что у меня есть несколько сообщений, когда я открываю файл .config об отсутствующих схемах для элемента 'entityFramework' 'defaultconnectionFactory' 'type' и т.д. и т.д.
Любые предложения о том, где искать дальше, с благодарностью.
Полная трассировка стека для MetadataException:
at System.Data.Metadata.Edm.MetadataArtifactLoaderResource.LoadResource()
at System.Data.Metadata.Edm.MetadataArtifactLoaderResource.CreateReader()
at System.Data.Metadata.Edm.MetadataArtifactLoaderResource.CreateReaders(DataSpace spaceToGet)
at System.Data.Metadata.Edm.MetadataArtifactLoaderComposite.CreateReaders(DataSpace spaceToGet)
at System.Data.Metadata.Edm.MetadataCache.EdmMetadataEntry.LoadEdmItemCollection(MetadataArtifactLoader loader)
at System.Data.Metadata.Edm.MetadataCache.EdmItemCollectionLoader.LoadItemCollection(EdmMetadataEntry entry)
at System.Data.Metadata.Edm.MetadataCache.LoadItemCollection[T](IItemCollectionLoader`1 itemCollectionLoader, T entry)
at System.Data.Metadata.Edm.MetadataCache.GetOrCreateEdmItemCollection(String cacheKey, MetadataArtifactLoader loader, Object& entryToken)
at System.Data.EntityClient.EntityConnection.LoadEdmItemCollection(MetadataWorkspace workspace, MetadataArtifactLoader artifactLoader)
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)
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.Initialize()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
at System.Linq.Queryable.OrderBy[TSource,TKey](IQueryable`1 source, Expression`1 keySelector)
at Sp_CodeGenerator.SelectAll.SelectAll_Method() in C:\Sp_CodeGenerator\Sp_CodeGenerator\Templates\dbo.SelectAll.StoredProcedure.sql.xml.cs:line 14
at Sp_CodeGenerator.Program.Main(String[] args) in C:\Sp_CodeGenerator\Sp_CodeGenerator\Program.cs:line 15
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()