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 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下面:
{
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了
{
}
9. 最后用soap ui 进行调试,通过
希望本文所述对大家的c#程序设计有所帮助。