ASP.Net MVC 3 & System.Data.Entity? - PullRequest
       1

ASP.Net MVC 3 & System.Data.Entity?

5 голосов
/ 06 мая 2011

Я создаю свой первый веб-сайт asp.net MVC (версия 3).

Я использую Entity Framework для получения данных из моей базы данных, поэтому пока у меня есть список фильмов вмоя база данных.

Я пытаюсь создать страницу, которая отображает список этих фильмов.

Итак, контроллер, кажется, в порядке, он возвращает View (IEnumerable).

В представлении я указал тип моей модели:

@ model IEnumerable

Movie - это класс, созданный с помощью шаблона T4 из моего edmx, поэтому он наследуется от EntityObject.

Теперь, когда я пытаюсь отобразить свою страницу, я получаю сообщение об ошибке, указывающее, что мне нужно импортировать System.Data.Entity:

Ошибка сервера в'/' Приложение.

Ошибка компиляции

Описание: Произошла ошибка во время компиляции ресурса, необходимого для обслуживания этого запроса.Пожалуйста, просмотрите следующие конкретные подробности ошибки и измените свой исходный код соответствующим образом.

Сообщение об ошибке компилятора: CS0012: тип файла «System.Data.Objects.DataClasses.EntityObject», когда он не собирается в сборе.Вы не можете ссылаться на сборку System.Data.Entity, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089 '.

Ошибка источника:

Строка 27: строка28: строка 29:
открытый класс _Page_Views_Movie_List_cshtml: System.Web.Mvc.WebViewPage> {строка 30: строка 31: строка скрыта

исходный файл: c: \ Windows \ Microsoft.NET \ Framework \v4.0.30319 \ Временные файлы ASP.NET \ root \ 93402ec0 \ 8f8e48f4 \ App_Web_list.cshtml.9612c299.pwpwk-k5.0.cs Строка: 29

Но я ссылался на эту DLL вмой проект, и у меня есть соответствующее использование в моем контроллере.

Я пытался поместить это использование в cshtml: @using System.Data.Entity, но он не компилируется (не может найти Entity в системе.Данные)

Так что мне делать?

все мои проекты .Net 4 (не профиль клиента)

Ответы [ 4 ]

3 голосов
/ 06 мая 2011

добавьте следующую строку в ваш web.config

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
1 голос
/ 16 апреля 2013

Для Asp.Net Mvc 2 И 3

 <compilation debug="true" targetFramework="4.0" >
 <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
  ...
 </assemblies>

Для ASP.NET MVC 4 (.NET4.5) изменить с

<system.web>
     <compilation debug="true" targetFramework="4.0" />

К

 <system.web>
   <compilation debug="true" targetFramework="4.0" >
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      </assemblies>
    </compilation>
1 голос
/ 06 мая 2011

две вещи - 1. изменить определение модели, как было упомянуто Мухаммедом - его более стандартным способом также 2. включить ссылку на: C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0\ System.Data.Entity.dll

ИЛИ используйте шаблоны POCO Entity.Net в любых проектах, в которых находятся ваши объекты, чтобы освободить вас от зависимости от этой библиотеки в вашем проекте MVC.

0 голосов
/ 06 мая 2011

Пожалуйста, попробуйте указать типизированное перечисление, например

@model IEnumerable<MyEntityObjectType>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...