L'oggetto di accesso ai dati DAO è uno schema comunemente utilizzato in .NET? Ho sempre utilizzato DAO come metodo per fornire l'accesso al mio livello dati. Ad esempio, potrei avere un'interfaccia sottile sul mio oggetto ObjectContext EntityFramework che espone tutti i miei ObjectSet come IObjectSet.Il pattern DAO è ampiamente utilizzato in .NET?
Le query complesse sarebbero quindi esposte dai DAO, ognuno dei quali con una dipendenza da questa interfaccia. Potrei avere un ProductDAO che espone metodi come GetProductsOnSale()
o GetInfrequenlySoldProducts()
. I miei controllori o relatori avrebbero quindi utilizzato questi metodi, che probabilmente sarebbero virtuali per consentire la stubing di risultati specifici per i test unitari.
Quindi questo è un linguaggio comunemente utilizzato in .NET? Per qualche motivo la stragrande maggioranza degli esempi che vedo online utilizzando questo modello sono basati su Java. Anche lo this question sulle best practice DAO è contrassegnato come Java e non C#.
Non c'è niente di sbagliato con l'utilizzo qualcosa da un'altra comunità, ho solo un leggero timore che tutti intorno a me sta facendo le cose in modo diverso ...
La mia comprensione è che il repository è la "cosa" che espone tutti quei '' IObjectSet 'membri e DAO è la classe che utilizza il repository per creare le query. È coerente con come usi questi termini? –
@Adam - Non proprio, il 'DAO' è ciò che _abstracts_ l'effettiva interfaccia DB, il' Repository' è ciò che astrae l'uso del 'DAO' per rappresentare una supposta collezione" in memoria ". – Oded
Vedo. Come chiameresti gli oggetti che prendono un'istanza di un repository e espongono query complesse? Sicuramente non è una buona idea semplicemente scaricare tutte le tue - probabilmente numerose querce sul tuo repository ... Immagino che le cose si stiano abbastanza rapidamente ingombrante –