c# - How to write one read, insert, update, delete method that does the job for each database models? -


i had write 4 methods (read, insert, update, delete) for each model in mvc.
need know if there's better way write less code , use c# features interfaces, generic types , don't know ... etc.
, let's have these tables map corresponding models generated ado.net entity data model.

enter image description here

for simple crud logic, can use generic repository pattern. here example:

interface irepository<t> t: class {     list<t> getall();     void add(t entity);     void update(t entity);     void remove(t entity); } 

implementation entity framework (replace dbcontext context class):

class genericrepository<t>: irepository<t> t: class {     public virtual list<t> getall()     {         using(var context = new dbcontext())         {             return content.set<t>().tolist();         }     }      public virtual void add(t entity)     {         using(var context = new dbcontext())         {             context.entry(entity).state = entitystate.added;             context.savechanges();         }     }      public virtual void update(t entity)     {         using(var context = new dbcontext())         {             context.entry(entity).state = entitystate.modified;             context.savechanges();         }     }      public virtual void remove(t entity)     {         using(var context = new dbcontext())         {             context.entry(entity).state = entitystate.deleted;             context.savechanges();         }     } } 

all methods virtual can override them if necessary. can use repository directly (discouraged), or subclass specific type:

class userrepository: genericrepository<user> {    // other query methods here } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -