您的位置:首页 > 数据库

Lex.db 数据库使用方法(之一)

2013-08-15 17:26 405 查看
Lex.db是一款跨平台的小型数据库.本人在做windowsPhone项目时,为了能让该数据库可以直接用在windows8上的同一款软件上费了相当多功夫.应该说此款数据库使用起来并不是特别难,而是手头可用的资料少,因此纠结了自己很久.现在将其一般的使用流程写下,希望大家少走点弯路.有关给数据库的介绍可以查看:http://lexblog.azurewebsites.net/.

 

该数据库一般的操作流程如下:

1.定义一个实体类:该类就是将来要存入数据库的.

2.使用NuGet将lex.DB添加到工程中

3.往头文件中添加using 声明,定义和初始化使用的数据库:var db = new DbInstance("某个文件名");程序会建立该文件然后往其中存放数据

4.定义需要存储的数据在这个阶段中,生成高度优化的映射代码,以极快的读/写数据类。

db.Map<Contact>().Automap(i => i.Id);

5.初始化数据库实例:db.Initialize();

6.开始工作:增 删 改 查 等等

7.关闭数据库.

最简单的情况莫过于只存储一个普通类.假设我们需要将类 Person存入数据库.

首先是我们定义好的类以及里面的成员.

public class Person
{
private int mId;
public int Id
{
get { return mId; }
set { mId = value; }
}
private int mAge;
public int Age
{
set { Age = value; }
get { return mAge; }
}

private string mName;
public string Name
{
get { return mName; }
set { mName = value; }
}

private string mJob;
public string Job
{
get { return mJob; }
set { mJob = value; }
}
}


 

然后我们需要将该类的信息存入数据库

using System.Linq;
using Lex.Db;

namespace .Example.Model
{
public class PersonDB
{
//声明数据库中的一个表
private static DbInstance sDb;
//定义数据库中的表
public static void LoadDatabase()
{
if (sDb == null)
{
sDb = new DbInstance("PersonInFo");
sDb.Map<Person>().Automap(aPackageItem => aPackageItem.Id);
sDb.Initialize();
}
}
//往数据库中插入数据
public static void InsertNewTrackingPackage(Person aPackage)
{

sDb.Table<Person>().Save(aPackage);
}

// 更新数据库中的表
public static void UpdateTrackingPackage(Person aPackage)
{
if (sDb == null)
return;
sDb.Table<Person>().Save(aPackage);
}

// 按照从小到大的顺序排列数据库中的项目
public static IOrderedEnumerable<Person> LoadAllTrackingPackages()
{
return sDb.Table<Person>().LoadAll().OrderByDescending(aPackage => aPackage.Id);
}

// 按照主键删除数据库中的项目
public static bool DeleteTrackingPackageByKey(int aId)
{
var result = sDb.Table<Person>().DeleteByKey(aId);
return result;
}

// 删除数据库
public static void DisposeDatabase()
{
if (sDb != null)
{
sDb.Flush();
sDb.Dispose();
sDb = null;
}
}
}
}


最后在需要的地方声明一个该类的对象,进行操作即可.

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐