3

我一直在关注教程-> http://www.asp.net/web-forms/tutorials/getting-started-with-ef/the-entity-framework-and-aspnet-getting-started-part-2

我被困在主题 -修改 EntityDataSource 控件标记以提高性能。当我ContextTypeName通过删除ConnectionStringand设置属性时DefaultContainerName,我收到一条错误消息;

Unable to cast object of type 'ContosoUniversity.DAL.SchoolEntities' to type 'System.Data.Objects.ObjectContext'.

请注意:使用ConnectionStringandDefaultContainerName可以正常工作。

4

2 回答 2

1

当我学习相同的教程时,请尝试下面的 MSDN 文章链接解决了我的问题。

MSDN 文章

只需在 SchoolContextEntityDataSource_ContextCreating() 方法中将 SchoolContext 更改为 SchoolEntities

那里的代码是这样的:

protected void SchoolContextEntityDataSource_ContextCreating(object sender,    EntityDataSourceContextCreatingEventArgs e)
{
   var db = new SchoolContext();
   e.Context = (db as IObjectContextAdapter).ObjectContext;
}

并添加

using System.Data.Entity.Infrastructure;

此致,

阿迪特·马利克

于 2014-01-14T13:55:26.703 回答
0

首先在 EntityDataSource structral aspx 代码中使用来自 OnContextCreating 方法,然后实现 OnContextCreating 方法:

    protected void StudentsEntityDataSource_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
    {
        var db = new ContosoUniversity.DAL.schoolEntities();
        e.Context = (db as IObjectContextAdapter).ObjectContext;
    }

并添加:使用 System.Data.Entity.Infrastructure;

于 2018-05-27T11:04:56.950 回答