1

EntityFrameworkを使用して、App_Code \ DALにEntityDataModel(.edmxファイル)を作成しました。ウィザードで、エンティティに「DLGDBEntities」という名前を付けました。EntityDataSource.aspxにいくつかのsがあり、OnContextCreating属性を「UseSurveyContext」に設定しました。これは次のようになります。

protected void UseSurveyContext(object sender, EntityDataSourceContextCreatingEventArgs e)
{
   e.Context = surveyContext;
}

SurveyContextのセットアップコードは次のとおりです。

DLGDBEntities surveyContext;

およびPage_Load:

surveyContext = new DLGDBEntities();

上記のすべては、すべてのチュートリアルで見たのと同じコードのように見えます(例:http://msdn.microsoft.com/en-us/library/cc668193.aspx#1)。それは機能しています。

ただし、エラーが発生しました。Cannot implicitly convert type 'DAL.DLGDBEntities' to 'System.Data.Objects.ObjectContext'

私は何を間違えましたか、そしてなぜそれが以前に機能したのですか?

4

1 に答える 1

9

EntityDataSourceコントロールは、ObjectContextでのみ機能します。を使用して、DbContextからObjectContextを取得できます((IObjectContextAdapter)context).ObjectContext。Visual Studio 2012では、デフォルトのコードジェネレーターが変更され、Visual Studio 2010のデフォルトであったEntityObjectおよびObjectContextから派生したエンティティとは対照的に、POCOエンティティおよびDBContextが生成されることに注意してください。

編集

コメントでSvenが指摘しているように、新しいEF6互換バージョンのEntityDataSourceControlがリリースされ、EF6DbContextインスタンスを取ります。

于 2012-11-08T06:09:21.800 に答える