zoukankan      html  css  js  c++  java
  • Castle ActiveRecord 3.0RC 入门示例

    参考文档

    一、引用类库

    二、配置

      本示例通过加载xml文件实现配置,其它配置方式请看“参考文档”

      本例配置为 : mysql.xml   内容如下:

    View Code
     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <activerecord>
     3 
     4   <config>
     5     <add
     6       key="connection.driver_class"
     7       value="NHibernate.Driver.MySqlDataDriver" />
     8     
     9     <add
    10       key="dialect"
    11       value="NHibernate.Dialect.MySQLDialect" />
    12     
    13     <add
    14       key="connection.provider"
    15       value="NHibernate.Connection.DriverConnectionProvider" />
    16     
    17     <add
    18       key="connection.connection_string"
    19       value="Data Source=localhost;Database=mydb;User Id=root;Password=" />
    20     
    21     <add key="proxyfactory.factory_class"        
    22          value="NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle" />
    23   </config>
    24 
    25 </activerecord>

    三、手动创建数据库(略)

    四、创建一个实体类

    View Code
     1 using Castle.ActiveRecord;
     2 
     3 namespace ARLibs.Classes
     4 {
     5     [ActiveRecord(Table = "wp_product")]
     6     public class Product : ActiveRecordBase<Product>
     7     {
     8         private int id;
     9         private string name;
    10 
    11 
    12         [PrimaryKey(PrimaryKeyType.Native)]
    13         public int Id
    14         {
    15             get { return id; }
    16             set { id = value; }
    17         }
    18         [Property]
    19         public string Name
    20         {
    21             get { return name;}
    22             set { name = value; }
    23         }
    24     }
    25 }

    五、初始化

    基本方法是先初始化AR,然后就调用写的实体类,本示例将初始化写在一个静态类里

    (注意:本示例静态类BootStrap所在的程序集包含了AR类,如Product

    View Code
    using System;
    
    namespace ARLibs
    {
        public static class BootStrap
        {
    
            public static void Start(String xmlfile, bool IsNew)
            {
                Castle.ActiveRecord.Framework.IConfigurationSource cfg = null;
                try
                {
                    //加载xml文件作为配置
                    cfg = new Castle.ActiveRecord.Framework.Config
                            .XmlConfigurationSource(xmlfile);
                    //初始化AR
                    //将指定程序集里的activerecord初始化
                    Castle.ActiveRecord.ActiveRecordStarter
                        .Initialize(typeof(BootStrap).Assembly, cfg);
                    if (IsNew)
                    {
                        //在数据库中创建表(如果数据库时存在此表将会先删掉再新建,会造成数据丢失)
                        Castle.ActiveRecord.ActiveRecordStarter.CreateSchema();
                        //建议用CreateScheamaFromfile("x.sql")
    
                    }
                }
                catch (Exception ex) { throw ex; }
    
            }
        }
    }

    六、使用继承来的方法执行CRUD操作

      测试方法如下:

    View Code
     1 [TestMethod()]
     2         public void ProductTest()
     3         {
     4             //本示例的配置文件复制在执行目录下的Configs目录下
     5             //建议:初始化工作可以统一放到程序启动事件中(如asp.net 的app_start事件,winform的form_load事件)以免每次使用时都去重复初始化。
     6             string basepath = AppDomain.CurrentDomain.BaseDirectory;
     7             BootStrap.Start(basepath+@"\Configs\mysql.xml",true);
     8             Product p = new Product();
     9             p.Name = "Iphone 4s";
    10             p.Save();
    11             Assert.AreEqual("Iphone 4s", Product.FindFirst().Name);
    12         }

    七、注意事项

  • 相关阅读:
    用Jquery控制文本框只能输入数字和字母
    Math:弧度制
    python学习之案例
    python自动化模块之实践一
    python学习之路 第六天
    python学习之路 第五天
    python学习之路 第四天
    python学习之路 第三天
    python学习之路 第二天
    python学习之路 第一天
  • 原文地址:https://www.cnblogs.com/loxen/p/2951090.html
Copyright © 2011-2022 走看看