Castle ActiveRecord概述
最后让我们来看完成映射关系的类:
我们把类映射到了数据表、字段和主键,代码非常直白。在开始测试之前,我们还必须提供一些配置信息,这些信息包含了数据库联接的一些设置,我们可以使用AppDomain Config文件来保存这些信息,也可以使用硬编码的方式:using System;
using System.Collections.Generic;
using System.Text;
using Castle.ActiveRecord;
![]()
namespace ActiveRecord
...{
[ActiveRecord("Blogs")]
public class Blog : ActiveRecordBase
...{
private int _id;
private String _name;
private String _author;
![]()
[PrimaryKey(PrimaryKeyType.Identity, "blog_id")]
public int Id
...{
get ...{ return _id; }
set ...{ _id = value; }
}
![]()
[Property("blog_name")]
public String Name
...{
get ...{ return _name; }
set ...{ _name = value; }
}
![]()
[Property("blog_author")]
public String Author
...{
get ...{ return _author; }
set ...{ _author = value; }
}
/**//**//**//// <summary>
/// 删除所有
/// </summary>
public static void DeleteAll()
...{
DeleteAll( typeof(Blog) );
}
/**//**//**//// <summary>
/// 查询所有
/// </summary>
/// <returns></returns>
public static Blog[] FindAll()
...{
return (Blog[])FindAll(typeof(Blog));
}
/**//**//**//// <summary>
/// 根据Id查询
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static Blog Find(int id)
...{
return (Blog)FindByPrimaryKey(typeof(Blog), id);
}
}
}
或者:<code>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="activerecord"
type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord"/>
</configSections>
<activerecord>
<config>
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
<add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
<add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
<add key="hibernate.connection.connection_string" value="UID=sa;Password=yourpass;Initial Catalog=test;Data Source=." />
</config>
</activerecord>
</configuration>
</code>
在这个例子中,我们可以象下面这样初始化:InPlaceConfigurationSource source = new InPlaceConfigurationSource();
Hashtable properties = new Hashtable();
properties.Add("hibernate.connection.driver_class", "NHibernate.Driver.SqlClientDriver");
properties.Add("hibernate.dialect", "NHibernate.Dialect.MsSql2000Dialect");
properties.Add("hibernate.connection.provider", "NHibernate.Connection.DriverConnectionProvider");
properties.Add("hibernate.connection.connection_string", "UID=sa;Password=;Initial Catalog=test;Data Source=.");
source.Add(typeof(ActiveRecordBase), properties);
ActiveRecordStarter.Initialize(source, typeof(Blog));
现在你能够象下面这样运行程序了:IConfigurationSource source = System.Configuration.ConfigurationSettings.GetConfig("activerecord") as IConfigurationSource;
ActiveRecordStarter.Initialize(source, typeof(Blog));
//删除所有
Blog.DeleteAll();
//添加
Blog blog = new Blog();
blog.Name = "ttinfo";
blog.Author="ttinfo2";
blog.Save(); // or blog.Create();
//按照id查询
Int id=1;
Blog blog= Blog.Find(id);
……
0
相关文章
