Entity DataSource not working with Entity Framework 6 Upgrade

entitydatasource entity-framework entity-framework-6


I recently upgraded our Webforms application from EF 4.4 to EF6 and I got so many compile time build errors with the Entity Datasource controls. Generally I am getting these error in all occurrences when trying to access the context object :


I have followed the same walkthrough as given in : http://entityframework.codeplex.com/wikipage?title=Updating%20Applications%20to%20use%20EF6

The error information which is showing up is:

1) Module System.Data.Entity. version="" should be referenced

2) Cannot case expression of type System.Data.Objects.ObjectContext to type ObjectContext (After explicitly type casting to System.Data.Entity.Core.Objects.ObjectContext)

Can anybody help to fix this?

Accepted Answer

I just went through this exercise when upgrading to EF 6 from EF 5 and I had the same errors.

Here is what I had to do.

Install-Package Microsoft.AspNet.EntityDataSource

It would register a new EntityDataSource Control in the web.config under pages:

    <add tagPrefix="ef" assembly="Microsoft.AspNet.EntityDataSource" namespace="Microsoft.AspNet.EntityDataSource" />

Next step is to replace existing <asp:EntityDataSource /> controls to <ef:EntityDataSource /> in your aspx pages.

Final step is to go in your code behind and update references for EntityDataSourceContextCreatingEventArgs or any other type of EFContext tags.


protected void OnContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e){... } 


protected void OnContextCreating(object sender, Microsoft.AspNet.EntityDataSource.EntityDataSourceContextCreatingEventArgs e){... } 

It all worked and I didn't have to reference System.Data.Entity in the assembly.

Popular Answer

The Entity DataSource control for EF6 is available in preview since 2014-01-30 (details in this Microsoft announcement). It is available as a nuget package : http://www.nuget.org/packages/Microsoft.AspNet.EntityDataSource/

If you try to download it from the nuget package manager, be sure to select the "include prerelease" item in the top combo Box.

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why