sqlite3 - Entity framework Core ObjectDisposeException: "Safe handle has been closed" -


setup

entity framework core 1.1

wpf application .net 4.5.2

the problem:

i encountering exception while running query on sqlite database.

system.objectdisposedexception occurred hresult=0x80131622
message=safe handle has been closed source=mscorlib stacktrace:
@ system.runtime.interopservices.safehandle.dangerousaddref(boolean& success) @ system.stubhelpers.stubhelpers.safehandleaddref(safehandle phandle, boolean& success) @ microsoft.data.sqlite.interop.nativemethods.sqlite3_sqlite3.sqlite3_db_filename(sqlite3handle db, intptr zdbname) @ microsoft.data.sqlite.interop.nativemethods.sqlite3_sqlite3.db_filename(sqlite3handle db, intptr zdbname) @ microsoft.data.sqlite.interop.nativemethods.sqlite3_db_filename(sqlite3handle db, string zdbname) @ microsoft.data.sqlite.interop.versionedmethods.strategy3_7_10.getfilename(sqlite3handle db, string zdbname) @ microsoft.data.sqlite.interop.versionedmethods.getfilename(sqlite3handle db, string zdbname) @ microsoft.data.sqlite.sqliteconnection.get_datasource() @ microsoft.entityframeworkcore.storage.relationalconnection.close()
@ microsoft.entityframeworkcore.storage.internal.sqliterelationalconnection.close() @ microsoft.entityframeworkcore.query.internal.queryingenumerable.enumerator.dispose() @ microsoft.entityframeworkcore.query.querymethodprovider.<_shapedquery>d__31.movenext() @ system.linq.enumerable.whereselectenumerableiterator2.movenext()
@ microsoft.entityframeworkcore.query.internal.linqoperatorprovider.exceptioninterceptor1.enumeratorexceptioninterceptor.movenext() @ system.collections.generic.list1..ctor(ienumerable1 collection)
@ system.linq.enumerable.tolist[tsource](ienumerable
1 source) @ fxconnection.persistence.repositories.pointnamerepository.getconnecteddevicenotracking(pointname pointname) in c:\users*\documents\visual studio 2017\projects\project\project\persistence\repositories\pointnamerepository.cs:line 357 @ fxconnection.viewmodels.projectdevicedatabaseviewmodel.initialloading_dowork(object sender, doworkeventargs e) in c:\users*\documents\visual studio 2017\projects\project\project\viewmodels\projectdevicedatabaseviewmodel.cs:line 1729 @ system.componentmodel.backgroundworker.ondowork(doworkeventargs e)
@ system.componentmodel.backgroundworker.workerthreadstart(object argument)

the query running inside loop new context created before loop.

databasecontext.devices.load(); var devicefrom =     databasecontext.socketsockets.asnotracking()         .include(i => i.socketfrom)         .where(ss => ss.socketto.pointnameid == pointname.pointnameid)         .select(s => s.socketfrom)         .where(s => s.isconnected || s.issupplyorground == false)         .select(s => s.device)         .tolist();  var deviceto =     databasecontext.socketsockets.asnotracking()         .include(i => i.socketto)         .where(ss => ss.socketfrom.pointnameid == pointname.pointnameid)         .select(s => s.socketto)         .where(s => s.isconnected || s.issupplyorground == false)         .select(s => s.device)         .tolist(); 

i wondering if doing query in right way? because entirely possible there no results. might problem?

additionally, socketsocket table many-to-many mapping contains socket pairs.

the problem not happen time @ same spot, same data.

  • could exception caused trying have multiple context accessing same sqlite database @ same time?


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -