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

Lucas.ORM是一个简单易用的.NET Framework 2.0持久层框架,通过Attribute描述映射关系,支持实体的基本操作如增删改查。本文档详细介绍了其使用方法及配置。
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.DLLLucas.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配置节是用来记录错误或异常日志的。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值