EF, Repository i UoW.

0

Tworze nowy projekt w ASP.NET MVC.

Do DAL wrzuciłem kontekst, generyczne repozytorium i uow.
Korzystałem z: http://www.codeproject.com/Articles/770156/Understanding-Repository-and-Unit-of-Work-Pattern

Jednak chciałem wzbogacić to o wstrzykiwanie zależności i stworzyłem interfejs kontekstu i UoW jednak nie można tego zgrać razem.

Ktoś próbował? Czy ten link dobrze przedstawia sytuacje? Czy znacie lepsze rozwiązania?

0

Serio chcesz się uczyć programowania od Hindusów?

Nie wiem co ten człowiek tworzy. Pomijając bezpośrednie operowanie na repozytoriach w kontrolerach, które przeczy idei MVC, gość zamiast wstrzykiwać UoW do repozytoriów, trzyma wszystkie możliwe (jego zdaniem) repozytoria w UoW. Skrajne niezrozumienie tematu.

Zresztą, gość twierdzi, że jest architektem, a nie wie o podstawach:

Found a very interesting comment for this article which i think is worth putting in the article.

There are at least 2 overloads for 'Where' method:
Hide Copy Code

public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);
public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

When we are using
Hide Copy Code

Func<T, bool>

the query will use the 'IEnumerable' version. In this case, the whole table records will be fetched from the database first and then the predicated will be applied to the final result. To prove it, just check out the produced SQL. It has no where clause.

To fix this issue, we need to change the 'Func' to 'Expression Func'.

0

To skąd się uczyć?

Znasz jakiś dobry przykład rozwiązania wielu repozytoriów w ASP.NET MVC z wykorzystaniem EF?

0

Znacznie lepiej wygląda to tutaj: http://www.codeproject.com/Articles/688929/Repository-Pattern-and-Unit-of

A, i tutaj jest ciekawy wpis odnośnie kwestii, których nie chce mi się po raz setny powtarzać: http://whiteknight.github.io/2015/03/21/repository.html

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