c# - The ObjectContext instance has been disposed and can no longer be used for operations that require a connection -


i'm building application using user controls have main form , display user controls code:

        modules.ctrllistcontractors mo = new modules.ctrllistcontractors();         splitcontainercontrol.panel1.controls.clear();         splitcontainercontrol.panel1.controls.add(mo); 

and within user control can put problem error message :

the objectcontext instance has been disposed , can no longer used operations require connection.

i have relations tables displayed gridview inside ctrllistcontractors , when click menu button show ctrllistcontractors above error message , think it's because lazy loading need execute more queries additional data related tables.

i have code execute @ user control load event:

using (contractorsentities context = new contractorsentities(properties.settings.default.connection))         {             memberbindingsource.datasource = context.members.tolist();         } 

i think problem solved if can data main table , related tables @ same query before objectcontext disposed

if want dispose objectcontext (or dbcontext), you'll have grab all data need first. including related entities.

that can done using include, there 2 overloads: include(string) , more strongly typed include (available ef 4.1)

so, assuming there's relationship member (0-1) ---- (*) contractors, can include collection:

context.members.include(x => x.contractors).tolist(); 

but said, you'd have include everything need before disposing context. either or don't dispose context , lazily load details.


Comments

Popular posts from this blog

Perl - how to grep a block of text from a file -

delphi - How to remove all the grips on a coolbar if I have several coolbands? -

javascript - Animating array of divs; only the final element is modified -