asp.net mvc - How to build a generic repository -
asp.net mvc - How to build a generic repository -
i'm developing web application in asp.net mvc nhibernate.
based in articles , tutorials i've found @ google, i'm using repository classes.
i have 10 classes , 10 repositories. today figured out 90% of mine repositories equal each other, except class. 1 example:
public class promocaorepository:ipromocaorepository { private isession session; public promocaorepository() { this.session = nhibernatesessionfactory.opensession(); } public void add(promocao promocao) { using(itransaction transaction = this.session.begintransaction()) { this.session.save(promocao); transaction.commit(); } } public void edit(promocao promocao) { using(itransaction transaction = this.session.begintransaction()) { this.session.update(promocao); transaction.commit(); } } public void remove(promocao promocao) { using(itransaction transaction = this.session.begintransaction()) { this.session.delete(promocao); transaction.commit(); } } public promocao getbyid(int id) { homecoming this.session.get<promocao>(id); } } there way kind of generic repository witch can utilize in classes?
if it's possible, should in case need create particular method specific class?
you should create generic repository, can utilize in general case, , if methods needed particular class, add together using inheritance. using example:
public class genericrepository<tentity> :igenericrepository<tentity> { private isession session; public genericrepository() { this.session = nhibernatesessionfactory.opensession(); } public void add(tentity instance) { using(itransaction transaction = this.session.begintransaction()) { this.session.save(instance); transaction.commit(); } } /* other methods */ } public class specificrepository : genericrepository<specificentity>, ispecificrepository { public void specialquery() { /* added method implementation */ } } asp.net-mvc nhibernate design-patterns oop repository
Comments
Post a Comment