Ist es unter Verwendung des Repository-Musters richtig, eine IQueryable eines Datensatzes (einer Tabelle) für die allgemeine Verwendung zurückzugeben?
Dies ist in vielen Fällen sehr praktisch, insbesondere wenn externe Bibliotheken verwendet werden, die diese Schnittstelle nutzen, z. B. einige Plugins, die UI-Elemente sortieren / filtern und an sie binden.
Das Offenlegen eines IQueryable scheint das Design jedoch manchmal fehleranfällig zu machen. Dies kann in Verbindung mit einer falschen Verwendung von Lazy Loading zu schwerwiegenden Leistungseinbußen führen.
Auf der anderen Seite scheint es überflüssig zu sein, Zugriffsmethoden für jede einzelne Verwendung zu haben, und es ist auch viel Arbeit (unter Berücksichtigung von Komponententests usw.).
new DbContext()
wann SaveChanges()
immer sie wollen, und rufen an, wann immer sie wollen. Es ist nicht möglich, etwas zu testen, und ich kann mir nur vorstellen, dass eine zusätzliche Ebene es versteckt.