Подтвердить что ты не робот

Entity Framework - уже определено

У меня проблема с файлом EDMX, с которым я никогда не сталкивался. Похоже, случайным образом, когда сайт работает или я отлаживаю, EF будет бомбить и жалуется, что все переопределено. Я должен перезапустить пул приложений и снова присоединить отладчик каждый раз, а затем начать снова с того места, где я остановился, после чего он работает снова до следующего раза, когда он выйдет из строя.

Я уже воссоздал EDMX с другим именем, поэтому MyAppEntities * 1 *

Ошибка:

Error: Schema specified is not valid. Errors: App_Code.Fck.csdl(3,4) : 
error 0019: The EntityContainer name must be unique. An EntityContainer with the name 'MyAppEntities1' is already defined. App_Code.Fck.csdl(69,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.AdSection' was already defined. App_Code.Fck.csdl(79,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.AgeRating' was already defined. App_Code.Fck.csdl(89,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Comment' was already defined. App_Code.Fck.csdl(101,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.ContentImage' was already defined. App_Code.Fck.csdl(115,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.ContentVideo' was already defined. App_Code.Fck.csdl(126,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FeaturePlan' was already defined. App_Code.Fck.csdl(142,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Flick' was already defined. App_Code.Fck.csdl(165,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Gallery' was already defined. App_Code.Fck.csdl(184,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Genre' was already defined. App_Code.Fck.csdl(197,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Like' was already defined. App_Code.Fck.csdl(208,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Meta' was already defined. App_Code.Fck.csdl(216,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.Payment' was already defined. App_Code.Fck.csdl(236,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.StatusUpdate' was already defined. App_Code.Fck.csdl(246,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.UserProfile' was already defined. App_Code.Fck.csdl(277,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_FeaturePlans_AdSections' was already defined. App_Code.Fck.csdl(289,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Flicks_AgeRatings' was already defined. App_Code.Fck.csdl(301,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Comments_Users' was already defined. App_Code.Fck.csdl(313,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Payments_FeaturePlans' was already defined. App_Code.Fck.csdl(325,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Flicks_Users' was already defined. App_Code.Fck.csdl(337,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Genres_Genres' was already defined. App_Code.Fck.csdl(349,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Likes_Users' was already defined. App_Code.Fck.csdl(361,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Payments_Users' was already defined. App_Code.Fck.csdl(373,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_StatusUpdates_Users' was already defined. App_Code.Fck.csdl(385,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FlickGenres' was already defined. App_Code.Fck.csdl(389,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.User' was already defined. App_Code.Fck.csdl(401,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_Users_be_Users' was already defined. App_Code.Fck.csdl(413,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.ContentImageSet' was already defined. App_Code.Fck.csdl(426,4) : 
error 0019: Each type name in a schema must be unique. Type name 'FckModel.FK_ContentImages_ContentImageSets' was already defined.
4b9b3361

Ответ 1

Вы можете изменить имя сборки проекта, содержащего модель.

Ссылка на исходную сборку все еще находилась в клиентском приложении.

Веб-приложение ASP.net:  - Вручную удалять файлы dll и pdb.

Веб-сайт ASP.net:  - Выполните IIS reset, затем очистите временные файлы asp.net в  папка C:\windows\microsoft.net\ваша версия рамки \temp  Файлы asp.net\

Ответ 2

У меня была такая же ошибка. Это проблема с dll, на моем случае была дублированная dll.

Ответ 3

У меня была такая же проблема с другим решением, у меня есть два проекта, использующих сущность framework, с моделями одной и той же базы данных с тем же именем, все таблицы, добавленные на обеих моделях, где во внутреннем сообщении исключения, решением было переименовать одну из моделей

Ответ 4

Я столкнулся с этой проблемой, работая над процессом, позволяющим динамически загружать сборки для подзапросов, не требуя перезапуска всего приложения. Я использую EF 5.0 с DbContext. Мое обходное решение заключалось в следующем:

  • Измените имя контейнера сущностей, чтобы оно отображало версию сборки, например. CustomerEntities_1_0_7_0 и сохраните edmx.
  • Вручную изменить контекст, чтобы удалить суффикс версии:

    public partial class CustomersEntities : DbContext
    {
    public CustomersEntities() : base("name=CustomersEntities")
    
  • Вручную изменить app.config аналогично.

Ответ 5

У меня была такая же проблема. Entity Framework сгенерировал файлы НЕ МОЖЕТ находиться в папке App_Code. Я имею в виду файлы EDMX.

Я уверен, у вас была ошибка, что вы не смогли ссылаться на файлы, поэтому вы проверили свойство из Content to Compile. Это решило ошибку VS, но создало двойные экземпляры - предварительно скомпилированные и скомпилированные среды выполнения.

Решение состоит в том, чтобы убрать его из папки App_code, поскольку это специальная папка только для кода.

Ответ 6

Для тех, у кого проблема еще не решена, попробуйте изменить соединение String в web.config.

В моем случае я изменил connectionString

От

<add name="StudentRegistrationDB" connectionString="metadata=res://*/App_Code.EFDataModel.StudentReg.csdl|res://*/App_Code.EFDataModel.StudentReg.ssdl|res://*/App_Code.EFDataModel.StudentReg.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=StudentRegistration;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

To:

 <add name="StudentRegistrationDB" connectionString="metadata=res://App_Code.EFDataModel2.StudentRegDB.csdl|res://App_Code.EFDataModel2.StudentRegDB.ssdl|res://App_Code.EFDataModel2.StudentRegDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=StudentRegistration;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Обратите внимание, что "звезда" в метаданных удалена, так что метаданные указываются на абсолютное местоположение. Из-за "звезды" EF ищет везде. Следовательно, могут встречаться дубликаты

Примечание. Это простое исправление, что означает, что вы не очищаете дубликаты данных, что не очень хорошо. Лучший способ - удалить дубликаты файлов .pdb/.dll, как это было предложено в предыдущих ответах.

Ответ 7

В моем случае удаление модели и ее создание с новым именем решают эту проблему

Ответ 8

Очистить, перестроить, развернуть в режиме выпуска.