System.Data.MetadataException: невозможно загрузить указанный ресурс метаданных - программирование
Подтвердить что ты не робот

System.Data.MetadataException: невозможно загрузить указанный ресурс метаданных

Мои строки подключения следующие:

<add name="RollCallDBEntities" connectionString="metadata=res://System.Engine/RollcallNS.csdl|res://System.Engine/RollcallNS.ssdl|res://System.Engine/RollcallNS.msl;provider=Devart.Data.Oracle;provider connection string=&quot;User Id=user;Password=password;Server=127.0.0.1;Direct=True;Sid=ORCL&quot;" providerName="System.Data.EntityClient" />

мой код выглядит следующим образом:

using (var db= new RollCallDBEntities()) //ok
{
   var query = db.TBL_ROLLCALL.ToList(); //Unable to load the specified metadata resource.
}

моя сборка:

System.Engine

У кого-нибудь есть идеи?

эти ссылки не устраняли мою проблему:
MetadataException: невозможно загрузить указанный ресурс метаданных
структура сущности Не удается загрузить указанный ресурс метаданных
Entity Framework: невозможно загрузить указанный ресурс метаданных
Невозможно загрузить указанный ресурс метаданных

4b9b3361

Ответ 1

Обратитесь к http://forums.devart.com/viewtopic.php?t=22092.

Если это не поможет, укажите:

  • Вы работаете с ADO.NET Entity Data Model (.edmx) или Devart Entity Model (.edml)?
  • значение вашего файла модели Свойство Action Action
  • значение свойства Metadata Artifact Processing вашей модели
  • номер сборки (x.xx.xxx) вашего dotConnect для Oracle
  • версия вашей Visual Studio
  • следуйте рекомендациям Pawel, чтобы проверить, были ли вложены ресурсы в сборка

Ответ 2

Я получаю такое исключение. Проблема заключалась в том, что я переименовал свой файл .edmx и забыл изменить имя в строке подключения файла EF Web.config:

metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;

Ответ 3

Самым простым решением, которое решило эту проблему для меня, было удаление папки obj, которая находится на том же уровне, что и папка bin, и перезапуск приложения, боже мой, это заняло гораздо больше времени, чем нужно

Ответ 4

Я использовал EntityFramework 6.0 в одном решении, которое включало несколько проектов, таких как проект уровня WebSite, проект уровня DataAccess. В моем решении миграции должны выполняться в проекте уровня DataAccess.

Когда я запускаю команду Add-Migration в консоли диспетчера пакетов, вы подняли "Не удалось загрузить указанный ресурс метаданных".

Наконец, я обнаружил, что проект уровня WebSite установлен как проект "Запуск", и этот триггер выше исключения. Кажется, система сначала проверит параметры строки подключения в проекте StartUp. И моя строка подключения данных, установленная в проекте уровня WebSite, составляет

"metadata = res:///ApplicationEntities.csdl | res:///ApplicationEntities.ssdl | res://*/ApplicationEntities.msl; поставщик = System.Data.SqlClient; строка подключения поставщика =" источник данных "=; начальный каталог = YourDatabaseName; интегрированная безопасность = True; MultipleActiveResultSets = True; App = EntityFramework ""

что неверно для кода.

Правильная строка подключения должна быть:

"Источник данных =; Начальный каталог = Имя_данных; Встроенная безопасность = True

Заключение, всегда проверяйте раздел "connectionStrings" в web.config в первом проекте "StartUp" решения.

Ответ 5

Если вы не знаете, какой правильный путь для ваших файлов метаданных, вы можете узнать, компилируя ваше приложение, затем открыв DLL, используя dotPeek JetBrains, и загляните в папку "Ресурсы", чтобы найти файл .csdl и т.д.

Ответ 6

Я также столкнулся с этой проблемой, и это произошло потому, что я забыл ссылаться на проект, содержащий файл EDMX.

Ответ 7

У меня был похожий продукт с devart mysqlconnect - возможно, это могло бы помочь.

У меня есть проект под названием EFModels, который содержит файл .edml и на который ссылаются другие проекты.

Я заметил, что продакшен версия проекта, который ссылается на EFModels, содержит файл EFModels.dll, но он был намного меньше по размеру (127 КБ против 437 КБ), чем отладочная версия EfModels.dll. Перемещение файла EFModels.dll из отладочной версии в версию выпуска решило проблему для меня, поскольку по какой-то причине продакшен версия не встраивала ssdl и т.д.

Ответ 8

Я также столкнулся с этой проблемой, и это было потому, что я переходил от Entity Framework Model First к Entity Framework Code First и забыл изменить строку соединения EDMX на "обычную" строку соединения.

Ответ 9

Я перешел на новый формат csproj (Visual Studio 2017 с простым форматом), после чего я начал получать эту ошибку. В csproj есть функция, при которой вам не нужно включать каждый файл, вместо этого он включает все соответствующие файлы в папке по умолчанию, поэтому файлы структуры сущностей обрабатываются одинаково, поэтому они не внедряются в сборку по умолчанию.

Мне нужно перейти и вручную изменить действие сборки моего файла edml (edmx в случае структуры сущностей Microsoft) на "DevartEntityDeploy" (я надеюсь, что это EntityDeploy для платформы Microsoft Entity) и построить его, что решило мою проблему

enter image description here

Ответ 10

Этот ответ специфичен для edml файла разработчика Devart.

Когда я обновил формат csproj (Visual Studio 2017 с простым форматом), я получил эту ошибку. В csproj есть функция, при которой вам не нужно включать каждый файл, вместо этого он по умолчанию включает все соответствующие файлы в папке, поэтому файлы структуры сущностей обрабатываются так же, как файлы cs, поэтому по умолчанию они не внедряются в сборку.

Мне нужно вручную изменить действие сборки моего файла edml на "DevartEntityDeploy", что решило мою проблему.

enter image description here

Ответ 11

Я также столкнулся с этой проблемой, потому что у меня отсутствовал раздел конфигурации EntityFramework в app.config.

У меня было это:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>

Но не это
<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb"/> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/> </providers> </entityFramework>