Zagnieżdżanie using(var db = new DbContext())

Zagnieżdżanie using(var db = new DbContext())
  • Rejestracja: dni
  • Ostatnio: dni
0

Siemanko, mam funkcję, w której pobieram dane z bazy danych przez EF, otaczając blok tego kodu

Kopiuj
using(var db = new DbContext())

. W tym bloku wykonuje się również funkcja, w której tak samo jak w głównej jest aktualizacja danych w bazie przez EF, wszystko otoczone przez using(var db = new DbContext())

Kopiuj
.

Co powiecie na takie zagnieżdżanie? Dobre, złe, szybkie, wole? Można lepiej?
dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
2

Powinieneś przekazać to db do metody zamiast tworzyć nowe.

  • Rejestracja: dni
  • Ostatnio: dni
0

Czy oby na pewno nie zostało to przewidziane przez EF? Przekazywanie kontekstu wygląda co najmniej dziwnie :)

FA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 475
0

Tak szczerze mowiac to nie potrafie sobie wyobrazic sytuacji w ktorej przekazywanie/zagniezdzanie kontekstu byloby konieczne;)

  • Rejestracja: dni
  • Ostatnio: dni
0

W sumie gdyby przenieść obiekt pobierany w using, poza using, i pod usingiem wywołać funkcję, w której jest inny using to można się obejść. Rozwiązań jest masa, tylko chciałem się poradzić, które jest najlepsze.

  • Rejestracja: dni
  • Ostatnio: dni
0

daj konkretny przykład

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
2

Kontekst powinien być polem klasy wstrzykiwanym przez konstruktor (ewentualnie można go opakować w jakiś Unit of Work), i wszystkie klasy korzystające z kontekstu powinny dostawać ten sam obiekt.

  • Rejestracja: dni
  • Ostatnio: dni
0
somekind napisał(a):

Kontekst powinien być polem klasy wstrzykiwanym przez konstruktor (ewentualnie można go opakować w jakiś Unit of Work), i wszystkie klasy korzystające z kontekstu powinny dostawać ten sam obiekt.

A co z klasami, w których mam same metody statyczne?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
2
Mały Kot napisał(a):

A co z klasami, w których mam same metody statyczne?

Usunąć i napisać porządnie.

msm
  • Rejestracja: dni
  • Ostatnio: dni
2

A co z klasami, w których mam same metody statyczne?

Dlaczego musisz uzywać stateycznych klas? Przerobić na niestatyczne.

Chyba że to faktycznie jakieś drobne helpery do DbContextu do których tylko static pasuje, wtedy przekazywać dbcontext w parametrze (może nawet jako extension methods).

  • Rejestracja: dni
  • Ostatnio: dni
0

Szczerze mówiąc, ja tu tylko sprzątam, jeżeli chodzi o wzorzec według jakiego powstaje projekt. Mamy to tak podzielone, że w kontrolerach nie mamy w ogóle logiki, cała jest zawarta w modelach, które są partialami modeli z bazy danych. Oczywiście ogólny wzorzec to MVC.

Spotkaliście się już z czymś takim?

  • Rejestracja: dni
  • Ostatnio: dni
0
msm napisał(a):

A co z klasami, w których mam same metody statyczne?

Dlaczego musisz uzywać stateycznych klas? Przerobić na niestatyczne.

Chyba że to faktycznie jakieś drobne helpery do DbContextu do których tylko static pasuje, wtedy przekazywać dbcontext w parametrze (może nawet jako extension methods).

Metody są mega rozbudowane.

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.