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

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 配置节是用来记录错误或异常日志的。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值