【发布时间】:2011-11-20 21:53:54
【问题描述】:
我曾经在 EF 4.0 中使用 ObjectSet,我可以使用
ObjectSet 的底层 上下文
myObjectSet.Context 返回ObjectContext。
现在在 Ef4.1 中使用 DbSet,等效于什么?
【问题讨论】:
我曾经在 EF 4.0 中使用 ObjectSet,我可以使用
ObjectSet 的底层 上下文
myObjectSet.Context 返回ObjectContext。
现在在 Ef4.1 中使用 DbSet,等效于什么?
【问题讨论】:
EF 4.1 不提供公共 API 来从 DbSet 实例获取 DbContext。您必须使用 Reflections API 来获取 DbContext 实例。
编辑
一种解决方法是使用DbSet 实例传递DbContext 实例。
例如,如果您有一个仅采用 DbSet 实例的构造函数。也传递DbContext 实例。
public MyService(DbContext context, DbSet<MyClass> mySet){}
其他方法是打开Reflector 内部的EntityFramewrk.dll,并通过访问DbSet 的internal/private 字段了解如何获取DbContext 实例。我不建议您使用它,因为实现可能会发生变化。
【讨论】: