您的位置:首页 > 其它

Lucas.ORM持久层框架使用说明

2007-05-06 12:41 441 查看
Lucas.ORM持久层框架使用说明
Lucas.ORM是个简单的持久层框架,可以实现对实体的基本操作(新增,修改,删除,查询)。系统使用Attribute作为描述映射的方法,程序员只需要学会Persist提供的方法就可以完成对实体的基本操作。
目前,Lucas.ORM运行环境.NET Framework 2.0.
下面给出利用Lucas.ORM开发的具体例子:
在VS2005下新建个Window Console项目,并添加对Lucas.ORM的引用。并添加一个类:

[DataTable("TUser")]
public class User
{
private string userID;
[DataColumn("UserID", DbType.String,IsPrimaryKey=true)]
public string UserID
{
get { return userID; }
set { userID = value; }
}
private string password;
[DataColumn("Password", DbType.Stringe)]
public string Password
{
get { return password; }
set { password = value; }
}
private string question;
[DataColumn("Question", DbType.String)]
public string Question
{
get { return question; }
set { question = value; }
}
private string answer;
[DataColumn("Answer", DbType.String)]
public string Answer
{
get { return answer; }
set { answer = value; }
}
private DateTime registerTime;
[DataColumn("RegDate", DbType.DateTime)]
public DateTime RegisterTime
{
get { return registerTime; }
set { registerTime = value; }
}
}
类中第一行[DataTable("TUser")]表是类 User映射到数据库表TUser. [DataColumn("UserID", DbType.String,IsPrimaryKey=true)]表是字段UserID,字符串类型,并且是关键字,如果不是关键字的字段,不需要指明IsPrimaryKey.

下面代码演示如何了如何将User对象添加到数据库中:
User user = new User();
user.UserID = "tigerlgf";
user.Password = "password";
user.Question = "who are you?";
user.Answer = "lucas";
user.RegisterTime = DateTime.Now;
if (!persist.Save(user))
{
Console.WriteLine("保存出错!");
}
else
{
Console.WriteLine("保存成功!");
}
如果你觉得对象有些这段不需要插入到数据库,还有另一种方法:
FieldValueCollection fields = new FieldValueCollection();
fields.Add("UserID", "张三");
fields.Add("Question", "who is your girl-friend?");
fields.Add("Answer", "Shu");
if (persist.Save<User>(fields))
{
Console.WriteLine("保存成功!");
}
else
{
Console.WriteLine("保存出错!");
}

更新对象:
User user = new User();
user.UserID = "lucas";
user.Password = "password";
user.Question = "who are you?";
user.Answer = "lucas";
user.RegisterTime = DateTime.Now;
if (!persist.Update(user))
{
Console.WriteLine("保存出错!");
}
else
{
Console.WriteLine("保存成功!");
}
对象更新时按关键字更新,系统先查找UserID等于lucas的记录,然后更新。
删除对象:
User user = new User();
user.UserID = "lucas";
user.Password = "password";
user.Question = "who are you?";
user.Answer = "lucas";
user.RegisterTime = DateTime.Now;
if (!persist.Delete(user))
{
Console.WriteLine("删除出错!");
}
else
{
Console.WriteLine("删除成功!");
}
或者:
FieldValueCollection fields = new FieldValueCollection();
fields.Add("UserID", "张三");
if (persist.Delete<User>(fields))
{
Console.WriteLine("保存成功!");
}
else
{
Console.WriteLine("保存出错!");
}
查询对象:
List<User> dt = (List<User>) persist.Query<User>();
foreach (User user in dt)
{
Console.WriteLine("{0}|{1}|{2}|{3}|{4}", user.UserID, user.Password, user.Question, user.Answer, user.RegisterTime);
}
或者:
List<User> users = (List<User>)persist.Query<User>("UserID='lucas'");
foreach (User user in users)
{
Console.WriteLine("{0}|{1}|{2}|{3}|{4}", user.UserID, user.Password, user.Question, user.Answer, user.RegisterTime);
}
Persist.Query<T> ()提供多种重载方法,返回结果为List<T>类型。
Persist.Query<T> ()查询数据库表中所有记录;
Persist.Query<T><T>(string filter)按条件查询;
Persist.Query<T>(int pageSize, int pageNo)分页查询
Persist.Query<T>(string filter, int pageSize, int pageNo)条件加分页;
Lucas.ORM需要Lucas.Data.DLL和Lucas.Log.DLL两个组件的支持,并且需要在应用程序配置文件中配置。
Lucas.ORM配置,以下项目为例的App.Config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="Lucas.Data" type="Lucas.Data.DataPropertyConfigurationHandler,Lucas.Data"/>
</configSections>
<Lucas.Data>
<DatabaseProperty name="Default">
<DatabaseType>OleDb</DatabaseType>
<ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Blog.mdb;User ID=Admin;Password=;</ConnectionString>
</DatabaseProperty>
</Lucas.Data>
<appSettings>
<add key="DebugFile" value="Log.xml"/>
</appSettings>
</configuration>
配置说明:<Lucas.Data>配置节是数据库配置。DatabaseType是指数据库的类型:目前只支持三种:OleDb,Oracle,MSSQLServer;数据库连接字符串放在ConnectionString中。Name="Default"是指默认的数据库,且是必须的。这样就配置好了数据库。
DebugFile配置节是用来记录错误或异常日志的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: