2016-06-03 4 views
0

Да я прочитал и попробовать entity framework Unable to load the specified metadata resourceEntity Framework Ошибка не удалось загрузить указанный ресурс метаданных

Я обычно использую код первый и не было никаких проблем. Однако мне нужно устранить проект с EDMX

Контекст:

public partial class x500Entities : DbContext 
{ 
    public x500Entities() 
     : base("name=x500Entities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public virtual DbSet<WorkerPublicExtended> WorkerPublicExtendeds { get; set; } 
} 

соединение строки:

<add name="x500Entities" 
connectionString="metadata=res://*/CDISWorkerPublicExtended.csdl|res://*/CDISWorkerPublicExtended.ssdl|res://*/CDISWorkerPublicExtended.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xserver;initial catalog=x500;persist security info=True;user id=xuser;password=xpassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
providerName="System.Data.EntityClient"/> 

ОШИБКА:

Исключение типа «System.Data.Entity.Core.MetadataException» произошло в EntityFramework.dll, но не было обработано в коде пользователя Дополнительная информация: Не удалось загрузить указанный ресурс метаданных.

После удара строку:

return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim()); 

Полный метод:

public WorkerPublicExtended GetEmployee(string idsid) 
{ 
    using (x500Entities context = new x500Entities()) 
    { 
     return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim()); 
    } 
} 
  1. Почему это происходит?
  2. Я подключился к sqs server ssms, и я не вижу таблицу WorkerPublicExtended, которую я видел в диаграмме edmx и модели, я не вижу, где это имя переводится в реальное имя таблицы. Как это?

ответ

0

Возможные причины: 1) файл ресурс не является нигде не найти в вас проекте (этот файл ресурс настроен в вас app.config в строке подключения) подтвердить ою есть.

2) когда вы говорите, что подключитесь к базе данных, и вы не видите таблицу, то вы находитесь в неправильной базе данных? что никогда не должно происходить, у вас есть EDMX, сгенерированный для другой базы данных, или кто-то вынул таблицу и не восстановил edmx? : X

Если у вас есть 200% уверены, что база данных, к которой вы подключаетесь, является последней в схеме, процедурах, представлениях и т. Д., Или это производственная база данных, почему бы не удалить весь edmx и не воссоздать, не протестировать и не переупаковать?

0

Три части EMDX выглядят правильно в строке соединения. После перепроверки этой части, чтобы быть правильными (см этой guideline устранить проблему):

  • Вы могли бы изменили MetadataArtifactProcessing свойства модели для копирования в выходной каталог, или
  • Вы изменили другие вещи (например, название сборки) или
  • Возможно, вы используете посткомпилировать задачу для внедрения EMDX, который больше не работает.

Источник от here.

Также проверьте всю строку для правильного синтаксиса.