一、概述
  Active Record(中文名:活动记录)是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。关系型数据库往往通过外键来表述实体关系,Active Record 在数据源层面上也将这种关系映射为对象的关联和聚集。
  Active Record 适合非常简单的领域需求,尤其在领域模型和数据库模型十分相似的情况下。如果遇到更加复杂的领域模型结构(例如用到继承、策略的领域模型),往往需要使用分离数据源的领域模型,结合 Data Mapper (数据映射器)使用。
  Active Record 驱动框架一般兼有 ORM 框架的功能,但 Active Record 不是简单的 ORM。著名的例子是全栈(Full Stack) Web 开发框架 Ruby on Rails。
二、准备
   下载:1)Castle.ActiveRecord-3.0.RC.zip    --程序中要引用的dllc包
      2)Castle-bin-net-2.0              --使用执行Castle.ActiveRecord.Generator.exe生成实体类,也可以不用该工具,用手动编写。
 
三、Active Record的使用
  本文以一个博客系统为例。
第一步:创建项目
  1)添加一个解决方案ActiveRecordDemo;
  2)在解决方案里添加一个类库项目ActiveRecordDemo.Model和Mvc应用程序ActiveRecordDemo.UI.MVC2
    在Model项目中引用下载的Castle.ActiveRecord中的所有dll,在MVC项目中引用NHibernate.dll和Castle.ActiveRecord.dll。
第二步:准备数据库表
   在Mvc项目中添加数据库文件Blog.mdf,为了方便,就以文件的方式放在项目中,然后创建两张表:
--Posts表
CREATE TABLE [dbo].[Posts](
    [Id] [int] IDENTITY(1,1) PRIMARY KEY,
    [Subject] [nvarchar](200) NOT NULL,
    [Text] [nvarchar](max) NOT NULL,
    [DateAdded] [datetime] NOT NULL,
)
View Code
--Comments表
CREATE TABLE[Comments](
    [Id] [int] IDENTITY(1,1) PRIMARY KEY,
    [Test] [nvarchar](max) NOT NULL,
    [Author] [nvarchar](50) NOT NULL,
    [DateAdded] [datetime] NOT NULL,
    [PostId] [int] NOT NULL
)
GO

ALTER TABLE [dbo].[Comments] ADD  CONSTRAINT [FK_Comments_Posts2] FOREIGN KEY([PostId])
REFERENCES [dbo].[Posts] ([Id])
GO
View Code

相关文章:

  • 2018-11-19
  • 2021-04-05
  • 2021-10-27
  • 2021-09-19
  • 2021-11-23
  • 2021-11-13
  • 2021-08-28
  • 2022-12-23
猜你喜欢
  • 2021-06-01
  • 2021-12-10
  • 2021-06-27
  • 2020-05-28
  • 2021-08-04
相关资源
相似解决方案