PetaPoco入门

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

首页 - 网络编程 -

PetaPoco入门(二)

2013-06-02 12:34:-冷月TinyHU-

点击数: 1949

1.Petapoco基本用法

1.1.创建示例工程

首先创建一个工程文件,为了便于展示数据这里创建一个类型为:WindowsApplication的工程文件。命名为:PetapocoTest。

程序最终布局及功能预览如下:

1.2.添加petapoco包

在项目文件的Reference上右键,选择“管理NuGet程序包”,并搜索Petapoco,安装之。

1.3.添加数据库连接

在app.config或web.config文件中添加数据库连接串。

下面是连接SQL Server:

下面是连接MySQL:

由于petapoco是与面向数据库无关的ORM组件,故对DB的增、删、改、查的代码与具体连接哪个物理数据库类型无关。

1.4.定义POCO-实体类

public class article

{

public long article_id { get; set; }

public string title { get; set; }

public DateTime date_created { get; set; }

public bool draft { get; set; }

public string content { get; set; }

}

1.5.创建petapoco操作对象

接下来创建一个PetaPoco.Database对象。

var db=new PetaPoco.Database("DefaultConnection ");

1.6.查询数据

// 查询所有数据

foreach (var a in db.Query

("SELECT * FROM articles"))

{Console.WriteLine("{0} - {1}", a.article_id, a.title);}

//查询标量

long count=db.ExecuteScalar("SELECT Count(*) FROM articles"); //查询单条数据

var a = db.SingleOrDefault

("SELECT * FROM articles WHERE article_id=@0", 123));

1.7.分页查询

var result=db.Page

(1, 20, // <-- page number and items per page "SELECT * FROM articles WHERE category=@0 ORDER BY date_posted DESC", "coolstuff"); 返回的是一个PagedFetch对象,包括以下属性:

public class Page where T:new(){

public long CurrentPage { get; set; }

public long ItemsPerPage { get; set; }

public long TotalPages { get; set; }

public long TotalItems { get; set; }

public List Items { get; set; }

}

1.8.Query与Fetch 方法

Petapoco支持2种查询数据的方法:Query及Fetch。Fetch返回的是List数据对象,而Query使用了yield迭代器,返回IEnumerable,并且不是一次性全部将数据获取到内存。

1.9.非查询命令

执行非查询语句,使用Execute 方法。

db.Execute("DELETE FROM articles WHERE draft<>0");

1.10.增删改查

Petapoco很好地支持了增删改查。

插入一条记录,需要声明表名及主键:

// Create the article

var a=new article();

a.title="我的标题";

a.content="测试数据 by tinyhu";

a.date_created=DateTime.UtcNow;// Insert it

db.Insert("articles", "article_id", a);

更新数据:

// Get a record

var a=db.SingleOrDefault

("SELECT * FROM articles WHERE article_id=@0", 123);// Change it

a.content="测试数据 by tinyhu";// Save it

b.db.Update("articles", "article_id", a);

可以传入一个匿名类型只更新部分部分字段。例如,下面只更新标题title列。

db.Update("articles", "article_id", new { title="New title" }, 123);

删除有2种方法:

// Delete an article extracting the primary key from a record

db.Delete("articles", "article_id", a);// Or if you already have the ID elsewhere

db.Delete("articles", "article_id", null, 123);

1.11.声明POCO对象

上述例子中需要声明表名及主键来增删除改,简化起见,可以在poco对象添加TableName 及PrimarKey属性,这样做CRUD操作时不再需要声明表名及主键了。

[PetaPoco.TableName("articles")]

[PetaPoco.PrimaryKey("article_id")]

相关文档
最新文档