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 中,默认代码生成器已更改为生成 POCO 实体和 DBContext,而不是从 Visual Studio 2010 中默认的 EntityObject 和 ObjectContext 派生的实体。

编辑

正如 Sven 在评论中指出的,一个新的 EF6 兼容版本的 EntityDataSourceControl 已经发布,它采用 EF6 DbContext 实例。

于 2012-11-08T06:09:21.800 回答