开发环境:VS2010+NET4.0+SQLSEREVER2008R2+Castle.Facilities.ActiveRecordIntegration-1.1.2.RC
ActiveRecord相关DLL下载地址:http://sourceforge.net/projects/castleproject/files/ActiveRecord%20Integration/1.1/
打开VS2010,新建一个名称为“CastleManager”,NET4。0支持的Winform工程,
1、添加相关引用:找到Castle.Facilities.ActiveRecordIntegration-1.1.2.RC.zip解压缩后的Castle.Facilities.ActiveRecordIntegration-1.1.2.RC\net40目录下的所有DLL文件。
2、设置app.config文件:
<?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="connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
<add key="dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
<add key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
<add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" />
<add key="connection.connection_string" value="UID=sa;Password=123456;Initial Catalog=CastleDB;Data Source=192.168.1.28" />
</config>
</activerecord>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
3、创建实体类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Castle.ActiveRecord;
using System.Collections;
namespace CastleManager
{
/// <summary>
/// User 的摘要说明。
/// </summary>
[ActiveRecord("Users")]
public class User : ActiveRecordBase
{
private int _id;
private string _name;
private string _password;
private string _emailAddress;
private DateTime _lastLogon;
[PrimaryKey(PrimaryKeyType.Identity, "LogonID")]
public int Id
{
get { return _id; }
set { _id = value; }
}
[Property("LogonName")]
public string Name
{
get { return _name; }
set { _name = value; }
}
[Property("Password")]
public string Password
{
get { return _password; }
set { _password = value; }
}
[Property("EmailAddress")]
public string Address
{
get { return _emailAddress; }
set { _emailAddress = value; }
}
[Property("LastLogon")]
public DateTime LastLogon
{
get { return _lastLogon; }
set { _lastLogon = value; }
}
public static void DeleteAll()
{
DeleteAll(typeof(User));
}
public static IList FindAll()
{
return (IList)FindAll(typeof(User));
}
public static User Find(int id)
{
return (User)FindByPrimaryKey(typeof(User), id);
}
}
}
4、编写窗体代码:打开窗体Form1,窗体上拖放一个按钮控件,双击按钮,输入代码如下:
//添加引用
using Castle.ActiveRecord.Framework;
using Castle.ActiveRecord;
using System.Configuration;
using System.Collections;
using Castle.ActiveRecord.Framework.Config;
private void button1_Click(object sender, EventArgs e)
{
AddUser();
}
/// <summary>
/// 使用ActiveRecord添加用户记录
/// </summary>
public void AddUser()
{
try
{
IConfigurationSource source = (IConfigurationSource)ConfigurationManager.GetSection("activerecord");
ActiveRecordStarter.Initialize(source, typeof(User));
User user = new User();
user.Name = "测试名字";
user.Password = "测试密码";
user.Address = "test@google.com";
user.LastLogon = DateTime.Now;
user.Create();
MessageBox.Show("添加成功");
}
catch (Exception ex)
{
MessageBox.Show("添加失败!"+ex.Message);
}
}
5、创建数据库和数据表:
打开SQLSERVER2008 R2。新建一名称为CastleDB的数据库,然后创建数据表Users
USE [CastleDB]
GO
/****** Object: Table [dbo].[Users] Script Date: 01/11/2013 12:50:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Users](
[LogonID] [int] IDENTITY(1,1) NOT NULL,
[LogonName] [varchar](40) NULL,
[Password] [varchar](20) NULL,
[EmailAddress] [varchar](40) NULL,
[LastLogon] [datetime] NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[LogonID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
6、程序测试:在VS2010中按F5运行程序,点击窗体按钮,然后查看数据库中对应的数据记录。证明添加成功。
备注:项目源码请到我的资源中去下载。