源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#基于DBContext(EF)实现通用增删改查的REST方法实例

  • 时间:2021-05-19 18:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#基于DBContext(EF)实现通用增删改查的REST方法实例
本文实例讲述了C#基于DBContext(EF)实现通用增删改查的REST方法,分享给大家供大家参考。具体如下: 我们用ADO.NET Entity Data Model来生成实体类后,一般都会对这些类进行基本的增删改查操作,如果每个类都要写这些基本的方法,实在太乏味了。下面就是通过step by step的方式介绍如何用DBContext来实现通用增删改查的REST方法,以及实现过程中容易出现的问题。 1. 打开vs2012,新建一个class library的项目 2. 新加一个ADO.NET Entity Data Model项到这个项目 3. 打开App.Config, 修改res://* 为res://yourproject 否则会报下面的这咱错误: WIFI.ssdl(3,4) : error 0019: Each type name in a schema must be unique. Type name 'WifiModel.Store.AD' was already defined. 4. Build这个项目 5. 新建另一个web api的项目 ASP.NET MVC 4 Web Application –> Web API 模板 注意这个项目的EF的版本与上个项目的版本要一致 6. 添加一个类到Models下:
[u]复制代码[/u] 代码如下:
public class GenericDBContext<T> : WifiEntities where T : class {         public DbSet<T> Items { get; set; }         public List<T> Get()         {             return Set<T>().ToList();         }         public T Get(int id)         {             return Items.Find(id);         }         public void Put(T item)         {             Items.Attach(item);             Entry(item).State = EntityState.Modified;             SaveChanges();         }         public void Post(T item)         {             Items.Add(item);             SaveChanges();         }         public void Delete(int id)         {             Delete(Get(id));         }         public void Delete(T item)         {             Items.Attach(item);             Entry(item).State = EntityState.Deleted;             SaveChanges();         } }
7. 添加一个到Controllers下面:
[u]复制代码[/u] 代码如下:
public class GenericController<T> : ApiController where T : class {         private readonly GenericDBContext<T> _context = new GenericDBContext<T>();         public List<T> Get()         {             return _context.Get();         }         public T Get(int id)         {             return _context.Get(id);         }         public void Post([FromBody]T t)         {             _context.Post(t);         }         public void Put([FromBody]T t)         {             _context.Put(t);         }         public void Delete(int id)         {             _context.Delete(id);         } }
至此,通用方法写完了 8. 下面就可以写具体Controller了
[u]复制代码[/u] 代码如下:
public class ADController : GenericController<AD> { }
9. 最后用soap ui 进行调试,通过 希望本文所述对大家的C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部