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         }

 

七、注意事项

 

 

转载于:https://www.cnblogs.com/loxen/archive/2013/03/09/2951090.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值