EF 4.3.1 с VS 2011 - PullRequest
       6

EF 4.3.1 с VS 2011

5 голосов
/ 11 марта 2012

Мне нужно знать, возможно ли начать использовать последнюю версию EF (4.3.1) с VS 2011 без необходимости устанавливать эти компоненты CTP, как указано здесь .

У меня были установлены эти компоненты, но я удалил их, и с тех пор я не могу добавить новый файл edmx в целевой проект .net 4;он жалуется на отсутствие ссылки на System.Data.Entity.

Нужно ли переустанавливать VS 2011?

Ответы [ 2 ]

9 голосов
/ 12 марта 2012

После того, как я удалил и переустановил Visual Studio, я все еще не мог получить сообщение об ошибке, поэтому я использовал монитор процесса, чтобы записывать, что Visual Studio делает с System.Data.Entity в качестве фильтра пути, и оказалось, что Visual Studio читаетиз

C: \ Windows \ Microsoft.NET \ Assembly \ GAC_MSIL \ policy.4.0.system.data.entity v4.0_0.0.0.0__b77a5c561934e089 \ policy.4.0.system.data.entity.config

, который имел привязку к

System.Data.Entity.dll v 4.2.0.0

как только я очистил файл VS работал как шарм.

Удаление CTP оставило это.

1 голос
/ 11 марта 2012

Да, должно работать без проблем при использовании .net 4, однако есть список известных проблем при использовании .net 4.5.Вам не нужно переустанавливать vs, чтобы получить версию 4.3.1 структуры сущностей, просто установите ее из галереи пакетов nuget, и, если вы используете .net 4, кажется, что все просто работает.

Проблемы, перечисленные приустановка EF4.3.1 в .net 4.5 включает в себя перечисленные ниже.


Известные проблемы с Entity Framework 4.x и .NET Framework 4.5

Entity Framework с 4.1 по 4.3 включал дополнительные аннотации данныхв пространстве имен System.ComponentModel.DataAnnotations в сборке EntityFramework.В .NET 4.5 эти аннотации были перемещены, чтобы стать частью .NET Framework в пространстве имен System.ComponentModel.DataAnnotations.Schema сборки System.ComponentModel.DataAnnotations.dll.Если вы используете EF 4.x и ориентируетесь на .NET 4.5, это приводит к двум аннотациям данных с одинаковым именем в разных сборках.Поскольку аннотации в .NET Framework находятся в другом пространстве имен, мы не смогли использовать переадресацию типов, чтобы избежать этого конфликта.

Можно использовать EF 4.x в .NET 4.5, но мы рекомендуем использоватьпоследняя предварительная версия EF 5. Если вы не используете уязвимые аннотации данных, это не повлияет на ваш код.Если вы используете аннотации данных в проекте C #, вы можете использовать модификатор extern, чтобы гарантировать, что ваш код использует аннотации из EntityFramework.dll (http://msdn.microsoft.com/en-us/library/e59b22c5(v=VS.80).aspx). Если вы используете новые аннотации из сборки System.ComponentModel.DataAnnotations.dll в.NET 4.5 они не будут обработаны Code First.

Это затронутые аннотации:

  • Столбец
  • ComplexType
  • DatabaseGenerated
  • DatabaseGeneratedOption
  • ForeignKey
  • InverseProperty
  • MaxLength
  • MinLength
  • NotMapped
  • Таблица
...