once in a while, when accessing some values from the SQL DB through Linq2SQL, i'm getting AccessViolationException.
the stack:
at DynamicClass.Read_BookmarkEntity(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)
at System.Data.Linq.SqlClient.ObjectReaderCompiler+ObjectReader`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InsertRange(Int32, System.Collections.Generic.IEnumerable`1<System.__Canon>)
at XXX.Identity.DataAccess.Sync.Bookmarks.BookmarksDAO.Retrieve(System.String, System.String[])
the code:
public IEnumerable<BookmarkEntity> Retrieve(string Name, string[] requiredSources) { try { using (var dbContext = CreateDbContext()) { var res = dbContext.RetrieveBookmarks_prc(Name, string.Join(",", requiredSources)); if (res == null) return null; List<BookmarkEntity> list = new List<BookmarkEntity>(); list.AddRange(res); return list; } } catch (Exception ex) { Logger.Write(new ErrorLogEntry(ex)); throw; } } private BookmarksDataContextDataContext CreateDbContext() { return new BookmarksDataContextDataContext(DbConnection.ConnectionString); }
BookmarksDataContextDataContext is auto generated (inherits from System.Data.Linq.DataContext)
but instead of using the automated 'RetrieveBookmarks_prcResult', i'm using my own class 'BookmarkEntity':
[global::System.Data.Linq.Mapping.FunctionAttribute(Name = "Sync.RetrieveBookmarks_prc")] [ResultType(typeof(BookmarkEntity))] public ISingleResult<BookmarkEntity> RetrieveBookmarks_prc([global::System.Data.Linq.Mapping.ParameterAttribute(Name = "LockName", DbType = "VarChar(128)")] string lockName, [global::System.Data.Linq.Mapping.ParameterAttribute(Name = "RequiredBookmarks", DbType = "VarChar(4000)")] string requiredBookmarks) { IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), lockName, requiredBookmarks); return ((ISingleResult<BookmarkEntity>)(result.ReturnValue)); }
again, this exception is occurring only once in a while, but must be fixed.
any ideas about the reason?