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

0

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

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())

.

Co powiecie na takie zagnieżdżanie? Dobre, złe, szybkie, wole? Można lepiej?
2

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

0

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

0

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

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.

0

daj konkretny przykład

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.

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?

2
Mały Kot napisał(a):

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

Usunąć i napisać porządnie.

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).

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?

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1