Castle Active Record for .NET2.0快速入门示例

简介:
一.创建Web工程
创建一个Web站点或者Web应用程序,添加对Castle.ActiveRecord.dll的引用。
二.创建需要持久化的业务实体
.NET2.0下,由于引入了泛型,创建业务实体比1.1下简单了许多,业务实体只需要继承于泛型的ActiveRecordBase类,其中默认已经实现了一些静态的方法,不需要我们再在业务实体中实现。
None.gif [ActiveRecord( " Employees " )]
None.gif
None.gif
public   class  Employee : ActiveRecordBase < Employee >
ExpandedBlockStart.gif
{
InBlock.gif    
private string employeeID;
InBlock.gif
InBlock.gif    
private string lastName;
InBlock.gif
InBlock.gif    
private string city;
InBlock.gif
InBlock.gif    
private string address;
InBlock.gif
InBlock.gif    
private string homePhone;
InBlock.gif
InBlock.gif    
private string country;
InBlock.gif 
InBlock.gif
InBlock.gif    [PrimaryKey(PrimaryKeyType.Assigned)]
InBlock.gif    
public string EmployeeID
ExpandedSubBlockStart.gif    
{
ExpandedSubBlockStart.gif        
get return employeeID; }
InBlock.gif
ExpandedSubBlockStart.gif        
set { employeeID = value; }
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    [Property]
InBlock.gif    
public string LastName
ExpandedSubBlockStart.gif    
{
ExpandedSubBlockStart.gif        
get return lastName; }
InBlock.gif
ExpandedSubBlockStart.gif        
set { lastName = value; }
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    [Property]
InBlock.gif    
public string City
ExpandedSubBlockStart.gif    
{
ExpandedSubBlockStart.gif        
get return city; }
InBlock.gif
ExpandedSubBlockStart.gif        
set { city = value; }
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    [Property]
InBlock.gif    
public string Address
ExpandedSubBlockStart.gif    
{
ExpandedSubBlockStart.gif        
get return address; }
InBlock.gif
ExpandedSubBlockStart.gif        
set { address = value; }
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    [Property]
InBlock.gif    
public string HomePhone
ExpandedSubBlockStart.gif    
{
ExpandedSubBlockStart.gif        
get return homePhone; }
InBlock.gif
ExpandedSubBlockStart.gif        
set { homePhone = value; }
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    [Property]
InBlock.gif    
public string Country
ExpandedSubBlockStart.gif    
{
ExpandedSubBlockStart.gif        
get return country; }
InBlock.gif
ExpandedSubBlockStart.gif        
set { country = value; }
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}
三.设置配置信息
Web.config中设置如下信息,这部分与1.1没有什么区别
None.gif <? xml version="1.0" ?>
None.gif
None.gif
< configuration >
None.gif
None.gif    
< configSections >
None.gif
None.gif        
< section  name ="activerecord"  type ="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" />
None.gif
None.gif    
</ configSections >
None.gif
None.gif    
< connectionStrings >
None.gif
None.gif        
< add  name ="NorthWind"  connectionString ="Data Source=RJ-097;Initial Catalog=Northwind;User ID=sa;Password=sa" />
None.gif
None.gif    
</ connectionStrings >
None.gif
None.gif    
< activerecord  isWeb ="true" >
None.gif
None.gif        
< config >
None.gif
None.gif            
< add  key ="hibernate.connection.driver class"  value ="NHibernate.Driver.SqlClientDriver" />
None.gif
None.gif            
< add  key ="hibernate.dialect"  value ="NHibernate.Dialect.MsSql2000Dialect" />
None.gif
None.gif            
< add  key ="hibernate.connection.provider"  value ="NHibernate.Connection.DriverConnectionProvider" />
None.gif
None.gif            
< add  key ="hibernate.connection.connection_string"  value ="ConnectionString = ${NorthWind}" />
None.gif
None.gif        
</ config >
None.gif
None.gif    
</ activerecord >
None.gif
None.gif
</ configuration >
四.初始化 ActiveRecord
Global.asax Application_Start 添加初始化代码
None.gif void  Application_Start( object  sender, EventArgs e) 
ExpandedBlockStart.gif
{
InBlock.gif
// Code that runs on application startup
InBlock.gif

InBlock.gifCastle.ActiveRecord.Framework.IConfigurationSource source 
=  System.Configuration.ConfigurationManager.GetSection("activerecord"as Castle.ActiveRecord.Framework.IConfigurationSource;
InBlock.gif    Castle.ActiveRecord.ActiveRecordStarter.Initialize(
typeof(Employee).Assembly, source);
InBlock.gif
ExpandedBlockEnd.gif}
五.使用业务实体
这部分也是与1.1一样,同样可以使用Create()Save()Update()等方法,不详细说了,这里我们用一个GridView来展示读取国家为UK的员工列表
ExpandedBlockStart.gif <% @ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default"  %>
None.gif
None.gif
< html >
None.gif
None.gif
< head  runat ="server" >
None.gif
None.gif    
< title > Castle Active Record for 2.0快速入门示例 </ title >
None.gif
None.gif
</ head >
None.gif
None.gif
< body >
None.gif
None.gif    
< form  id ="form1"  runat ="server" >
None.gif
None.gif     
< h1 > Castle Active Record for 2.0快速入门示例 </ h1 >
None.gif
None.gif        
< asp:GridView  ID ="GridView1"  AutoGenerateColumns ="false"  runat ="server" >
None.gif
None.gif            
< Columns >
None.gif
None.gif                
< asp:BoundField  HeaderText ="Employee ID"  DataField ="EmployeeID"   />
None.gif
None.gif                
< asp:BoundField  HeaderText ="LastName"  DataField ="LastName"   />
None.gif
None.gif                
< asp:BoundField  HeaderText ="City"  DataField ="City"   />
None.gif
None.gif                
< asp:BoundField  HeaderText ="Address"  DataField ="Address"   />    
None.gif
None.gif                
< asp:BoundField  HeaderText ="HomePhone"  DataField ="HomePhone"   />
None.gif
None.gif                
< asp:BoundField  HeaderText ="Country"  DataField ="Country"   />
None.gif
None.gif            
</ Columns >
None.gif
None.gif        
</ asp:GridView >
None.gif
None.gif    
</ form >
None.gif
None.gif
</ body >
None.gif
None.gif
</ html >
后台代码:
None.gif protected   void  Page_Load( object  sender, EventArgs e)
ExpandedBlockStart.gif
{
InBlock.gif    
this.GridView1.DataSource = Employee.FindAllByProperty("Country""UK");
InBlock.gif
InBlock.gif    
this.GridView1.DataBind();
ExpandedBlockEnd.gif}
最后,运行的结果如下:
 
内容有些简单,后续有时间会继续介绍 Castle Active Record for .NET2.015.gif
(出处:博客园[url]http://terrylee.cnblogs.com[/url]











本文转自lihuijun51CTO博客,原文链接:  http://blog.51cto.com/terrylee/67670 ,如需转载请自行联系原作者



相关文章
|
6月前
|
存储 开发框架 前端开发
asp.net与asp.net优缺点及示例
asp.net与asp.net优缺点及示例
|
2月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
33 0
|
18天前
|
存储 SQL 关系型数据库
七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门
七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门
|
C# 数据安全/隐私保护 开发者
『.NET』.NET 中常用的AOP框架——Castle
📣读完这篇文章里你能收获到 - AOP概念介绍 - 结合具体代码讲解.NET项目接入Castle
254 0
『.NET』.NET 中常用的AOP框架——Castle
|
IDE 安全 物联网
快速入门 .NET nanoFramework 开发 ESP32-Pico 应用
本文是一篇适合初学者的 .NET nanoFramework 保姆级入门教程,并提供了基本的入门程序并介绍了微雪的 ESP32-S2-Pico 使用 .NET nanoFramework 开发过程的基础知识。
439 0
快速入门 .NET nanoFramework 开发 ESP32-Pico 应用
|
存储 开发工具
【.NET】快速入门
【.NET】快速入门
87 0
【.NET】快速入门
|
存储 SQL 开发框架
.NET之Hangfire快速入门和使用
.NET之Hangfire快速入门和使用
418 0
.NET之Hangfire快速入门和使用
|
开发框架 .NET 调度
Quartz.NET开源作业调度框架系列(一):快速入门step by step
Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中。Quartz.NET提供了巨大的灵活性但又兼具简单性。开发人员可用它快捷的创建并执行一个自动化作业。Quartz.NET有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等。
1042 0
Quartz.NET开源作业调度框架系列(一):快速入门step by step
|
开发工具 索引
NET SDK连接阿里云ElasticSearch示例
本文主要演示如何使用elasticsearch-net sdk连接阿里云ElasticSearch实例,通过index的创建进行验证测试。
423 0
NET SDK连接阿里云ElasticSearch示例