我正在尝试初始化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中的这一行标有红色下划线。
有谁知道如何解决这个问题?
答案 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>