Является ли комбинация ADO.NET Entity Framework и ASP.MVC ошибочной?

У меня есть одно решение с тремя проектами.

  • DomainModel (библиотека С# с платформой Entity Framework ADO.NET)
  • DomainModelTest (модульное тестирование для бизнес-логики)
  • WebApp (с использованием DomainModel)

По какой-то причине я даже не могу представить представление, если передать какой-либо объект в DomainModel, даже не простой. Я получаю сообщение об ошибке ниже:

Любые идеи?

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

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

Строка 146: Строка 147:
[System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()] Строка 148: открытый класс views_home_index_aspx: System.Web.Mvc.ViewPage, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {Линия 149:
Строка 150: частный статический bool @__ инициализирован;

Я думал, что это может быть полезно, фактическая ошибка появляется в файле Default.aspx в строке, указанной ниже:

public partial class _Default : Page
{
    public void Page_Load(object sender, System.EventArgs e)
    {
        // Change the current path so that the Routing handler can correctly interpret
        // the request, then restore the original path so that the OutputCache module
        // can correctly process the response (if caching is enabled).

        string originalPath = Request.Path;
        HttpContext.Current.RewritePath(Request.ApplicationPath, false);
        IHttpHandler httpHandler = new MvcHttpHandler();
        httpHandler.ProcessRequest(HttpContext.Current); //**HERE**
        HttpContext.Current.RewritePath(originalPath, false);
    }
}

Ответы

Ответ 1

Попробуйте добавить ссылку в свой web.config в < сборки > .

Ответ 2

В web.config Добавьте это

<configuration>
  <system.web>
    <compilation>
      <assemblies>
        <add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
      </assemblies>
    </compilation>
  </system.web>
</configuration>

Ответ 3

Вы также можете добавить пустую модель данных Entity Data ADO.NET в свой веб-проект, а затем удалить ее. Он добавит вам необходимые ссылки.