栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

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

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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下:

复制代码 代码如下:public class GenericDBContext : WifiEntities where T : class
{
        public DbSet Items { get; set; }
        public List Get()
        {
            return Set().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下面:

复制代码 代码如下:public class GenericController : ApiController where T : class
{
        private readonly GenericDBContext _context = new GenericDBContext();

        public List 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了

复制代码 代码如下:public class ADController : GenericController
{

}

9. 最后用soap ui 进行调试,通过

希望本文所述对大家的C#程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/125976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号