2013-03-10 2 views
4

Существует некоторый код для приложения MVC, который был построен с использованием .NET 4.5 в качестве основы в VS 2012. Моя текущая система заставляет меня работать на VS 2010. Мне удалось открыть VS2012 в VS2010, но дело в том, что VS2010 поддерживает только до .NET 4..NET 4.0 заменяет пространства имен .NET 4.5

В коде есть несколько функций, которые используют файлы dll, доступные только для .NET 4.5, например System.ComponentModel.DataAnnotations.Schema.

Итак, есть ли какие-либо альтернативные функции/атрибуты, доступные в .NET 4, которые я мог бы использовать для выполнения того же действия, что и на .NET 4.5 прямо сейчас?

Это мой текущий код с помощью .NET 4.5:

[Table("UserProfile")] 
    public class UserProfile 
    { 
     [Key] 
     [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
     public int UserId { get; set; } 
     public string UserName { get; set; } 
    } 

Как вы можете видеть DatabaseGeneratedAttribute доступна под System.ComponentModel.DataAnnotations.Schema имен, который является частью .NET 4.5.

Любые предложения о том, какие соответствующие функции/атрибуты могут использоваться в .NET 4 для представления одной и той же логики?

Примечание: В фрагменте кода, приведенные выше, я получаю ошибки на Table и DatabaseGeneratedAttribute в

Тип или пространство имен «Таблица» не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)

и

Тип или пространство имен имя «DatabaseGener atedAttributeAttribute 'не удалось найти (вам не хватает указаний по использованию или ссылки на сборку?)

соответственно. Итак, я предполагаю, что мне просто нужно найти соответствующие классы в NET 4.0, и все встанет на свои места. Ваша помощь глубоко оценена.

+0

Эти аннотации [являются частью Entity Framework 5.0] (http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations (v = vs.103) .aspx). (Возможно, более ранние версии тоже, я бы не знал.) В любом случае EF5 должен работать с .NET 4.0, поэтому просто добавьте это в свой проект. – millimoose

+0

Но сэр, у меня уже есть EF 5, упомянутый в моем проекте. Вот ссылка «Assembly EntityFramework -D: \ Programming \ MVC \ PassMe \ packages \ EntityFramework.5.0.0 \ lib \ net45 \ EntityFramework.dll' – Swayam

+0

И здесь http://msdn.microsoft.com/en-us/ library/system.componentmodel.dataannotations.schema.databasegeneratedattribute.aspx, показано, что он доступен в версии .NET 4.5. Я что-то упускаю ? – Swayam

ответ

9

Я видел ту же проблему после изменения с .NET 4.5 до 4.0. Согласно this article «существует специальная версия сборки Entity Framework» для .NET 4.0, содержащая DataAnnotations, которые в противном случае были включены в .NET 4.5.

Переустановка структуры объекта, сделанной System.ComponentModel.DataAnnotations.Schema Работа снова. Переустановка, введя следующее в Package Manager Console: решение

Uninstall-Package EntityFramework 
Install-Package EntityFramework 
+0

Это работает, я проверил на VS2015 –

4

В заявке this article автор утверждает, что может использовать System.ComponentModel.DataAnnotations.Schema в приложении MVC4 с использованием VS2010 SP1.

Сообщите нам, если это сработает для вас.

1

Хенрика также работает в противоположной ситуации. У меня возникла проблема с переходом от .net 4.0 до .net 4.5.1 для поддержки MVC 5.2.3. У меня такие же ошибки. Удаление и повторная установка Entity Framework решить эту проблему в этой ситуации, а также:

Uninstall-Package EntityFramework 
Install-Package EntityFramework 
+0

Спасибо за разъяснение и в обратной ситуации! :) – Swayam

0

Пакет Консоль управления не работал для меня. Мне пришлось пойти в Manage Nuget, чтобы решить эту проблему. Я использую VS.нетто 2013

Смежные вопросы