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);
            }

常用的數據庫操作就這些了。

挺好用的,拿出來分享一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM