EFUnitOfWorkFactory初始化

时间:2011-04-17 13:10:50

标签: .net asp.net entity-framework entity-framework-4

我正在尝试初始化EFUnitOfWorkFactory对象上下文。

在global.asax中:

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    ObjectFactory.Initialize(x =>
        {
            x.For<IUnitOfWorkFactory>().Use<EFUnitOfWorkFactory>();
            x.For(typeof(IRepository<>)).Use(typeof(EFRepository<>));
        }
    );
    EFUnitOfWorkFactory.SetObjectContext(() => new MyEntities());
}

在生成的Object上下文中,我有:

public partial class MyEntities : ObjectContext
{
    .....
    .....
}

我在EFUnitOfWorkFactory.SetObjectContext(() => new MyEntities());执行Web应用程序时遇到异常:

Compiler Error Message: CS0012: The type 'System.Data.Objects.ObjectContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

我将System.Data.Entity添加到我的Web应用程序两次并重建但仍然收到此消息。另外,gobal.asax中的这一行标有红色下划线。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

您确定在Web应用程序或网站的引用程序集中有来自.NET 4.0的System.Data.Entity.dll吗?它也应该出现在web.config中:

<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>

  ...
</system.web>