最初に EF5 とコードを使用するように既存のプロジェクトを変更しました。古い ObjectContext に依存するリポジトリ クラスを使用しています。リポジトリの実装を同じに保つために、DBContext に ObjectContext を返すプロパティを作成しました。
public ObjectContext ObjectContext()
{
return (this as IObjectContextAdapter).ObjectContext;
}
問題は、この後 ObjectContext でエンティティを使用できないため、次のコードが失敗することです。
string GetSetName<T>() {
var entitySetProperty =
_context.GetType().GetProperties()
.Single(p => p.PropertyType.IsGenericType && typeof(IQueryable<>)
.MakeGenericType(typeof(T)).IsAssignableFrom(p.PropertyType));
return entitySetProperty.Name;
}
元の DBContext には、ObjectContext にキャストされる前に利用可能なすべてのエンティティがありますが、ObjectContext クラスにはエンティティのプロパティがないため、どのようにアクセスできますか?