C#基于DBContext(EF)實(shí)現(xiàn)通用增刪改查的REST方法實(shí)例
本文實(shí)例講述了C#基于DBContext(EF)實(shí)現(xiàn)通用增刪改查的REST方法,分享給大家供大家參考。具體如下:
我們用ADO.NET Entity Data Model來生成實(shí)體類后,一般都會(huì)對(duì)這些類進(jìn)行基本的增刪改查操作,如果每個(gè)類都要寫這些基本的方法,實(shí)在太乏味了。下面就是通過step by step的方式介紹如何用DBContext來實(shí)現(xiàn)通用增刪改查的REST方法,以及實(shí)現(xiàn)過程中容易出現(xiàn)的問題。
1. 打開vs2012,新建一個(gè)class library的項(xiàng)目
2. 新加一個(gè)ADO.NET Entity Data Model項(xiàng)到這個(gè)項(xiàng)目
3. 打開App.Config, 修改res://* 為res://yourproject
否則會(huì)報(bào)下面的這咱錯(cuò)誤:
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這個(gè)項(xiàng)目
5. 新建另一個(gè)web api的項(xiàng)目
ASP.NET MVC 4 Web Application –> Web API 模板
注意這個(gè)項(xiàng)目的EF的版本與上個(gè)項(xiàng)目的版本要一致
6. 添加一個(gè)類到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. 添加一個(gè)到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 進(jìn)行調(diào)試,通過
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#實(shí)現(xiàn)appSettings節(jié)點(diǎn)讀取與修改的方法
這篇文章主要介紹了C#實(shí)現(xiàn)appSettings節(jié)點(diǎn)讀取與修改的方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10C#實(shí)現(xiàn)WPS文件轉(zhuǎn)PDF格式的方法示例
這篇文章主要介紹了C#實(shí)現(xiàn)WPS文件轉(zhuǎn)PDF格式的方法,涉及C#針對(duì)office組件的相關(guān)引用與操作技巧,需要的朋友可以參考下2017-11-11C#調(diào)用C++ DLL bool返回值始終為true的問題
這篇文章主要介紹了C#調(diào)用C++ DLL bool返回值始終為true的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11如何在UpdatePanel中調(diào)用JS客戶端腳本
本文將介紹如何在UpdatePanel中調(diào)用JS客戶端腳本,需要了解的朋友可以參考下2012-12-12基于AForge實(shí)現(xiàn)C#攝像頭視頻錄制功能
這篇文章主要為大家詳細(xì)介紹了基于AForge實(shí)現(xiàn)C#攝像頭視頻錄制功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10C#實(shí)現(xiàn)人民幣大寫轉(zhuǎn)換示例代碼
這篇文章主要介紹了C#實(shí)現(xiàn)人民幣大寫轉(zhuǎn)換,需要的朋友可以參考使用2013-12-12