Poprawne użycie using na bazie danych

Poprawne użycie using na bazie danych
KE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
0

Witam.

Tutaj zamieszczam kod :

Kopiuj

            DataClasses1DataContext dc = new DataClasses1DataContext();
            
                List<Product> list = dc.Product
                    .Join(dc.ProductSubcategory,
                    product => product.ProductSubcategoryID,
                    productSubcategory => productSubcategory.ProductSubcategoryID,
                    (product, productSubcategory) => new { product, productSubcategory })
                    .Join(dc.ProductCategory,
                    joinedTable => joinedTable.productSubcategory.ProductCategoryID,
                    productCategory => productCategory.ProductCategoryID,
                    (joinedTable, productCategory) => new { joinedTable, productCategory})
                    .Where(result => result.productCategory == null)
                    .Select(result => result.joinedTable.product)
                    .ToList();
            return list;

Wykonuje się on poprawnie, jednak nie mogę użyć "using" dla tego kody ponieważ dostaję błąd : "Cannot access a disposed object. Object name: 'DataContext accessed after Dispose.'."

Niestety nie wiem jak sobie z nim poradzić.

Pozdrawiam.

mad_penguin
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
0

Obstawiam, że poza blokiem using odczytujesz jakąś właściwość, która jest leniwie ładowana. W takiej sytuacji możesz użyć np. projekcji aby wczytać wszystkie potrzebne dane za jednym razem, albo przerobić aplikację tak, aby dispose było wołane jak już wszystko zostanie odczytane (np. przez zrzucenie tego na kontener DI)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.