文档章节

Castle ActiveRecord学习实践(1):快速入门指南

邓小峰
 邓小峰
发布于 2009/03/26 20:38
字数 729
阅读 2996
收藏 1

单表使用

建立一下表
CREATE TABLE [dbo].[Employees] (
    [Employeesid] [int] IDENTITY (1, 1) NOT NULL ,
    [LogonName] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
    [LastLogon] [datetime] NULL
) ON [PRIMARY]
GO

建立一个实体类,代码如下
using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Castle.ActiveRecord;
using Castle.ActiveRecord.Framework;
using Castle.ActiveRecord.Framework.Config;
using Castle.ActiveRecord.Framework.Internal;
using Castle.ActiveRecord.Framework.Scopes;
using Castle.ActiveRecord.Framework.Validators;
using Castle.ActiveRecord.Queries.Modifiers;
using Castle.ActiveRecord.Queries;

/// <summary>
/// Employees 的摘要说明
/// </summary>

[ActiveRecord("Employees")]
public class Employees : ActiveRecordBase
{
    private int _Employeesid;
    private string _LogonName;
    private DateTime _LastLogon;
    [PrimaryKey(PrimaryKeyType.Identity, "Employeesid")]
    public int Employeesid
    {
        get { return _Employeesid; }
        set { _Employeesid = value; }
    }
    [Property("LogonName")]
    public string LogonName
    {
        get { return _LogonName; }
        set { _LogonName = value; }
    }
    [Property("LastLogon")]
    public DateTime LastLogon
    {
        get { return _LastLogon; }
        set { _LastLogon = value; }
    }

    #region
    public static void DeleteAll()
    {
        DeleteAll(typeof(Employees));
    }
    public static IList FindAll()
    {
        return (IList)FindAll(typeof(Employees));
    }
    public static Employees Find(int Employeesid)
    {
        return (Employees)FindByPrimaryKey(typeof(Employees), Employeesid);
    }
    #endregion
}


web.config中加入以下
<?xml version="1.0"?>
<!--
    注意: 除了手动编辑此文件以外,您还可以使用
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在
    machine.config.comments 中,该文件通常位于
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
 <configSections>
  <section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord"/>
 </configSections>
 <appSettings/>
 <connectionStrings/>
 <system.web>
  <!--
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会
            影响性能,因此只在开发过程中将此值
            设置为 true。
        -->
  <compilation debug="true">
   <assemblies>
    <add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></compilation>
  <!--
            通过 <authentication> 节可以配置 ASP.NET 使用的
            安全身份验证模式,
            以标识传入的用户。
        -->
  <authentication mode="Windows"/>
  <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
 </system.web>
 <activerecord>
  <config>
   <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
   <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2005Dialect"/>
   <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
   <add key="hibernate.connection.connection_string" value="Data Source=192.168.108.123,3758;Initial Catalog=GameMiddleNew;Persist Security Info=True;User ID=testuser;pooling = true;Max Pool Size=50;Min Pool Size=3;Password=3Ger@jiubang;"/>
  </config>
 </activerecord>

<!--mysql如下配置-->

 <activerecord>
  <config>
   <add key="hibernate.connection.driver_class" value="NHibernate.Driver.MySqlDataDriver"/>
   <add key="hibernate.dialect" value="NHibernate.Dialect.MySQLDialect"/>
   <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
   <add key="hibernate.connection.connection_string" value="Database=mydb;Data Source=localhost;User Id=root;Password=sureme"/>
  </config>
 </activerecord>
</configuration>


在Global.asax的Application_Start添加初始化代码
    void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的代码
        Castle.ActiveRecord.Framework.IConfigurationSource source = System.Configuration.ConfigurationManager.GetSection("activerecord") as Castle.ActiveRecord.Framework.IConfigurationSource;
        Castle.ActiveRecord.ActiveRecordStarter.Initialize(typeof(Employees).Assembly, source);
    }


使用
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html>
<head id="Head1" runat="server">
    <title>Castle Active Record for 2.0快速入门示例</title>
</head>
<body>
    <form id="form1" runat="server">
     <h1>Castle Active Record for 2.0快速入门示例</h1>
        <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
            <Columns>
                <asp:BoundField HeaderText="Employee ID" DataField="Employeesid" />
                <asp:BoundField HeaderText="LogonName" DataField="LogonName" />
                <asp:BoundField HeaderText="LastLogon" DataField="LastLogon" />
            </Columns>
        </asp:GridView>
    </form>
</body>
</html>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
this.GridView1.DataSource = Employees.FindAll();
        this.GridView1.DataBind();

        //增加
        Employees teste = new Employees();
        teste.LogonName = "test";
        teste.LastLogon = System.DateTime.Now;
        teste.Create();
        teste = (Employees)teste.SaveCopy();

        //修改
        teste.LogonName = "wo kao";
        teste.UpdateAndFlush();

        ////删除
        //Employees testf = new Employees();
        //testf.Employeesid = teste.Employeesid;
        //testf.Delete();
}

© 著作权归作者所有

共有 人打赏支持
邓小峰
粉丝 26
博文 38
码字总数 17272
作品 0
广州
高级程序员
私信 提问
Castle Active Record for .NET2.0快速入门示例

单表使用 建立一下表 CREATE TABLE [dbo].[Employees] ( [Employeesid] [int] IDENTITY (1, 1) NOT NULL , [LogonName] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL , [LastLogon] [dat......

邓小峰
2009/03/26
1K
0
Castle ActiveRecord学习实践(2):构建配置信息

摘要:ActiveRecord在底层封装了NHibernate,在框架启动时需要指定相关的配置信息,那么我们需要配置些什么?又该如何去配置呢?本文将会介绍在ActiveRecord中构建配置信息。 主要内容 1.需...

邓小峰
2009/03/26
2.1K
0
ActiveRecord 不要把它当DTO 为什么

@JFinal 你好,想跟你请教个问题: 我是初学jfinal,这些天都在研究这个框架,感觉非常不错,这里有个疑问希望你能帮忙.下面是我在网上查看资料找到的 JFinal采用ActiveRecord实现数据库操作支持...

愤怒的大菠萝
2012/12/11
359
4
脱离Rails使用ActiveRecord

ActiveRecord是Ruby的对象-关系映射(ORM)框架,它几乎总是被视为Rails框架的一部分,但其自身也是一个实体,可通过gem单独安装和使用。本文以访问Sqlite3为例,介绍如何在Rails框架之外使用...

redraiment
2014/02/11
0
2
Ruby on Rails 之旅(七)—— Ruby on Rails 入门(6)

对于Rails的迁移功能Migrations,一直都只是看一下网上的一些很基础很基础的代码片断就开始动手写代码,对它的认识基本上就是停留在抄袭的层面,连会用都说不上.有感于此,终下决心要弄清楚Migra...

jing31
2010/08/12
0
1

没有更多内容

加载失败,请刷新页面

加载更多

四、RabbitMQ3.7在CentOS7下的安装

安装依赖 sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git 创建yum源 vi /etc/yum.repos.d/rabbitmq-erlang.repo [......

XuePeng77
今天
2
0
android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
4
0
浅谈mybatis的日志适配模式

Java开发中经常用到的日志框架有很多,Log4j、Log4j2、slf4j等等,Mybatis定义了一套统一的日志接口供上层使用,并为上述常用的日志框架提供了相应的适配器。有关适配器模式例子可以参考 设计...

算法之名
昨天
13
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
昨天
3
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部