NClay的数据持久化处理入门编

         本文主要通过例程来介绍NClay数据持久化部分的应用,通过组件如何进行简单的数据持久化操作;内容包括配置文件的配置、实体类的生成和简单的持久化操作。使用NClay数据持久化进行数据操作项目必须引用NClay.DllNClay.Data.Dll两个组件库。

n         组件配置

NClay的数据持久化配置如下:

<configSections>

    <section name="NClay" type="NClay.FrameWorkConfigHandler, NClay, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

     </configSections>

  <NClay>

    <!-- 数据访问配置节-->

    <dal>

      <DriverType value="NClay.Data.OledbAccess, NClay.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>

      <ConnectionString  value=""/>

      <MappingAssemblys>

        <Assembly value="Blog.Entities"/>

      </MappingAssemblys>

    </dal>

</NClay>

Dal节是组件的数据持久化配置部分,主要包括以下三大部分:

DriverType:

       描述默认操作库数据的类型,这里配置了Access;组件还提供了OracleMSSQL。使用者完全可以根据IDriver来实现自己的数据库操作类型。

ConnectionString:

       描述默认数据库的连接信息

MappingAssemblys:

       描述映射实体类所在的程序集,允许为空。

n         实体类生成

CodeFactory是一个基本模板的代码生成工具,他提供NClay数据持久层的实体生成模板。

CodeFactory使用视频

CodeFactory下载

n         简单的持久化操作

下面主要介绍如果通过DaoContext进行简单的数据操作。

       当然配置时不能确定配置信息可以调用DaoContext进行各方面的信息设置:

            DaoContext.ConfigConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=FPNWIND.MDB";//初始化Access数据库连接信息

            DaoContext.AddAssembly(typeof(Program).Assembly);//加载相关程序集中所有实体描述类型

            //添加相关实体索引序列

            DaoContext.IDSequence.Add(typeof(类别),new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());

            DaoContext.IDSequence.Add(typeof(产品), new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());

            DaoContext.IDSequence.Add(typeof(供应商), new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());

            DaoContext.IDSequence.Add(typeof(运货商), new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());

配置完成后就可以进行持久化数据操作

获取对象

            产品 product = DaoContext.Load<产品>(1);

            Console.WriteLine(product.产品名称);

            Console.WriteLine(product.库存量);

            Console.WriteLine(product.单价);

            Console.WriteLine(product.单位数量);

添加对象

            类别 category = new 类别();

            category.类别名称= "测试类别";

            category.说明= "NClay测试用";

            DaoContext.Add(category);

            Console.WriteLine(category.类别ID);

修改对象

            int categoryid = category.类别ID;

            category.说明= "修改测试";

            DaoContext.Edit(category);

            category = DaoContext.Load<类别>(categoryid);

            Console.WriteLine(category.说明);

删除对象

            (DB.类别.类别ID==categoryid).Delete<类别>();

            category = DaoContext.Load<类别>(categoryid);

            Console.WriteLine(category == null);

查询对象

            IList<产品> items;

            items = DaoContext.List<产品>(null);

            foreach (产品 item in items)

            {

                Console.WriteLine("");

                Console.Write(item.产品名称+ "\t");

                Console.Write(item.库存量+ "\t");

                Console.Write(item.单价+ "\t");

             

            }

 

 

            items = DaoContext.List<产品>(null, DB.产品.单价.DESC);

            foreach (产品 item in items)

            {

                Console.WriteLine("");

                Console.Write(item.产品名称+ "\t");

                Console.Write(item.库存量+ "\t");

                Console.Write(item.单价+ "\t");

               

            }

 

 

            items = DaoContext.List<产品>(null,new Region(0,10));

            foreach (产品 item in items)

            {

                Console.WriteLine("");

                Console.Write(item.产品名称+ "\t");

                Console.Write(item.库存量+ "\t");

                Console.Write(item.单价+ "\t");

              

            }

 

 

            items = (DB.产品.类别ID ==1 & DB.产品.单价>10).List<产品>();

            foreach (产品 item in items)

            {

                Console.WriteLine("");

                Console.Write(item.产品名称+ "\t");

                Console.Write(item.库存量+ "\t");

                Console.Write(item.单价+ "\t");

              

            }

下载相关代码

在下一章节里会介绍组件的条件表达式,该表达式最特别的地方就是可以进行数据查询、修改、删除和聚合统计等功能。

posted on 2007-10-14 09:30  henry  阅读(649)  评论(4编辑  收藏  举报

导航