我有一個傳統的EF 4庫與數據庫第一個生成的ObjectContext與EntityObjects。我想慢慢遷移到使用DbContext,並需要一些指導。慢慢遷移EDMX應用程序以使用DbContext?
DbContext的一個重載需要現有的ObjectContext。我認爲這將允許我將我現有的ObjectContext包裝在DbContext中,並通過IDbSet屬性公開現有的EntityObjects。不幸的是,在創建DbContext時,不會創建IDbSet屬性,而是會拋出一個異常:「驗證該類型是否定義爲類,不是原始類型,嵌套類型或泛型類型,並且不會從EntityObject繼承。 「
是否有沒有辦法使用DbContext與IDbSet暴露現有的ObjectContext和EntityObjects?看起來很奇怪,我可以用ObjectContext創建一個DbContext,但不會公開實體本身。
下面是一些示例代碼:
public class MyDbContext : DbContext
{
public MyDbContext(MyObjectContext objectContext, bool dbContextOwnsObjectContext)
: base(objectContext, dbContextOwnsObjectContext)
{
}
public IDbSet<Person> People { get; set; }
}
唯一的例外是由的DbContext試圖創建IDbSet引起的。 Person是我現有的EDMX中的一個EntityObject。