PetaPoco 快速上手
今天來給大家分享一個好用的輕型的.net框架的ORM——PetaPoco
本著快速上手的原則,我們通過和EF對比,讓大家能快速使用PetaPoco
PetaPoco大家可能沒有聽說過,但大家一定聽說過或者用過EF吧,其實,PetaPoco和EF是一個性質的東西,只不過PetaPoco相對于EF而言較為輕量級的。
與EF一樣,我們可以再NuGet中將其引用安裝進來。
安裝完畢之后,我們可以就可以在解決方案中看到多個文件夾。
注:ExModels這個文件夾是我自己加上的,不是自己生成的。
在EF中,分為好幾種模式,如:代碼優先(Code First),數據庫優先(DataBase First) 等等……在PetaPoco中只有與EF類似的數據庫優先即DataBase First(可能還有其他模式,但筆者沒有深入研究)。
我們來說一下PetaPoco中幾個關鍵的文件
在Generated文件有一個Database.tt的文件,他下面還有個Database.cs的文件,這兩個文件,是PetaPoco'數據庫優先模式'的關鍵文件。本著快速上手的原則,其他文件就不做一一說明了。
下面我們來看一下如何在一個項目中來快速使用PetaPoco。
第一步:在App.config或Web.config 文件中配置數據庫連接字符串。
第二步:配置Database.tt文件。
打開Database.tt文件,給大家說一下幾個比較重要的配置屬性,沒有提到的,可以用他們給的默認值。
上面標注的就是幾個在項目中需要用到的比較重要的配置屬性,還有一些配置屬性沒有做一一的說明,小伙伴們可以自己研究一下,或者去網上查一下資料。
點擊保存(Ctrl+S),則PetaPoco會自動關聯相應的數據庫,給我們生成每個表的表實例,表明即為實例的類名,表字段名即為實例類的屬性名,是不是感覺和EF的DataBase First 很類似啊。
PetaPoco將自動生成的類實例保存到了PetaPoco.cs文件中了。我們可以在這個文件中查看。如果遇到數據庫數據結構發生變化,我們可以在Database.tt中重新點擊保存(Ctrl+S)一下,即可更新了。
PetaPoco配置完了,下面就可以真槍實彈的來用它進行對數據庫的一系列操作了。
根據上面的Database.tt的配置,我們生成的Database.cs文件中,命名空間和類名如下:
下面我用簡單的幾個小例子來給大家介紹一下PetaPoco操作數據庫的一些方法函數。
1、初始化
var db = new AntManManagerDB(); var db = new AntManManagerDB("AntManManager");上述兩行是常用的初始化Database的代碼,還有很多初始化的重載,大家可以自己看一下。
2、Insert
//message 是PetaPoco根據數據庫表生成的類實例var db = new AntManManagerDB();db.Insert(message); db.Execute("Insert語句");
3、Delete
//message 是PetaPoco根據數據庫表生成的類實例 var db = new AntManManagerDB(); db.Delete(message) db.Execute("Delete語句");4、Update
//message 是PetaPoco根據數據庫表生成的類實例var db = new AntManManagerDB(); db.Update(message) db.Execute("Update語句");
5、Select
//單條查詢 var a=db.SingleOrDefault<Message>("SELECT * FROM articles WHERE article_id=@0", 123); //分頁查詢,返回Page類實例,其屬性中,有很多你需要的值哦 var result=db.Page<Message>(1, 20, // <-- 第幾頁,每頁幾條"SELECT * FROM articles WHERE category=@0 ORDER BY date_posted DESC", "coolstuff"); // 查詢所有數據 foreach (var a in db.Query<Message>("SELECT * FROM message")) {Console.WriteLine("{0} - {1}", a.message_id, a.title); } //查詢所有數據 var a=db.Fetch<Message>("SELECT * FROM message")6、事務
var db = new AntManManagerDB();db.BeginTransaction();try{foreach (var message in listMessage){db.Insert(message);}db.CompleteTransaction();return true;}catch (Exception e){db.AbortTransaction();throw new Exception(e.Message);}常用的數據庫操作就這些了。
挺好用的,拿出來分享一下。
努力,不是為了要感動誰,也不是要做給哪個人看,而是要讓自己隨時有能力跳出自己厭惡的圈子,并擁有選擇的權利。記住,用自己喜歡的方式過一生。轉載于:https://www.cnblogs.com/yulei126/p/6757750.html
總結
以上是生活随笔為你收集整理的PetaPoco 快速上手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python-面向对象进阶
- 下一篇: (转载)VS2010/MFC编程入门之五