Organizzazione EF

martedì 02 dicembre 2014 - 11.34
Tag Elenco Tags  C#  |  .NET 4.0

Gemini Profilo | Expert

Ciao a tutti
chiedo scusa se insisto sull'argomento EF, ma ci sono cose che proprio non riesco a capire.
In tutti gli esempi che trovo in rete definiscono una classe che contiene solo proprietà. Proprietà che andranno a definire la struttura del database.
Nella classe non definiscono nessun metodo e utilizzano linq nelle pagine nella quali hanno bisogno di interrogare il db o salvare i dati.

Secondo me è sbagliato utilizzare il codice per eseguire le operazioni sul db nelle pagine in cui mi serve eseguire queste operazioni. Perchè ripetere, per esempio, un'operazione di inserimento 1000 volte in un progetto? Non sarebbe meglio definire un metodo salva nella classe e passare al metodo i dati da salvare e richiamare il metodo nel codice quando mi serve?
Inoltre, per esempio, se una classe agenzia ha delle immagini, io definisco dei metodi nella classe che mi restituiscono le immagini e quando devo visualizzarle in una pagina chiamo semplicemente ImmagineSmall ecc. Ora, se voglio continuare ad utilizzare questa organizzazione, devo definire questi metodi ImmagineSmall, ImmagineBig nella stessa classe in cui definisco le proprietà per l'EF?
Alcuni consigliano di non definire nella stessa classe. Ma allora dove definirle?
Fino ad ora ho fatto così:

Agenzia agenzia = new Agenzia();
agenzia.Salva() //Per salvare

Agenzia agenzia = new Agenzia(id);
imgAgenzia.ImageUrl = agenzia.ImamgineSmall();

Io vorrei continuare ad utilizzare questa organizzazione:
Classe che incapsula tutti i metodi e proprietà utili per eseguire operazioni sulla classe: operazioni CRUD, restituzione immagini associate, video o elenchi
Una classe che si occupa di tutte le operazioni di accesso al db e alla quale fanno riferimento le altre classi. Cioè, la classe Agenzia non accedere direttamente al db, ma richiama un metodo di una classe DataBanker che materialmente accede al db. Per evitare di cambiare 1000 classi se di decide di non utilizzare più EF(in questo caso).
Grazie mille

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

public class tipoCategoria { public tipoCategoria() { } public string ID { get; set; } public string FkPadre { get; set; } public string Categoria { get; set; } public string Tipologia { get; set; } public string Status { get; set; } public string RealUrl { get { return Routing.RewritelUrl(Categoria.ToLower(), "-"); } } public string Pagina(string tipo) { string url = string.Empty; switch (tipo) { case "corso": url = Routing.PageRouteCorsiCategorie(ID, RealUrl); break; case "master": url = Routing.PageRouteMasterCategorie(ID, RealUrl); break; case "universita": url = Routing.PageRouteCategorieCorsiUni(ID, RealUrl); break; } return url; } }
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5