优点: 1.CRUD:代码简洁 2.不用配置map 3.自带事务方便 4.自带IOC 5.自带 数据有效性验证 缺点: 1.自增长(Oracle 一直提示序号不存在,有空继续尝试) 2.多条件,直接用 HQL写在类里,或者将条件写在  Model字段定义里,太过硬性 3.CRUD 每个出错直接异常,每个语句必须  try catch 4.比较方便的CRUD ,删除多个.修改多个.则需要用到 HQL,问题如2. 5.实体模版生成器 Castle.ActiveRecord.Generator.exe…
最近使用Castle.ActiveRecord框架,网上关于多数据支持的文章很少,因此有了这篇博文的产生. 开发工具VS2015,Sql Server2008R2 新建数据库,数据初始化脚本如下: --新建数据库Castle.ActiveRecord.DB1 CREATE DATABASE [Castle.ActiveRecord.DB1]; GO USE [Castle.ActiveRecord.DB1] GO /****** Object: Table [dbo].[Post] Script…
1.ActiveRecord配置文件ARConfig.xml,并将配置文件的“生成操作”改成“嵌入的资源” <?xml version=; i < ; i++)             {                 UserInfo.Insert(",                     RegTime = DateTime.Now                 });             }             IList<UserInfo> mod…
一.数据库 1.数据表 Category:类别标签表(字段Type=1为类别,Type=2为标签) Category_Post:类别标签与文章中间表 Post:文章表 Comment:评论表 2.数据库关系图 3.简单说明 Category和Post表为多对多关系 Post和Comment表 为一对多关系 二.实体类 1.Category类: // 指定数据表,Lazy为延迟加载 [ActiveRecord("Category",Lazy=true)] public class Cat…
一.Active Record(活动记录)模式 Active Record是业务逻辑层中(<企业应用架构模式>将该模式归为数据源模式)常用的一种框架模式,尤其在底层数据库模型匹配业务模型时它特别有用,它是一种以数据库驱动为主的框架模式. 通常,数据库中的每张表都对应一个业务对象.业务对象表示表中的一行,并且包含数据.行为以及持久化该对象的工具,此外还有添加新实例和查找对象集合所需的方法. 在Active Record模式中,每个业务对象均负责自己的持久化和相关的业务逻辑. Active Rec…
在Castle.ActiveRecord 实体类中,如果两个对象有 “多对多” 关系,一般的做法是将其分解为 两个“一对多”关系,但有时引发了 “您要删除 或 引用 的对象#2在数据库中不存在”的异常 百思不得其解,同样的用法在“媒体引用”中一直都是正常的,为什么在“专题引用” 和“ Web栏目引用” 中就出现异常呢? 通过遍历代码发现了细微的差别: 在“媒体”的业务对象加载时,为了判断一个对象是否可以删除,常查询其被引用的 次数是多少,使用的方法是:DALMediaReference.Find…
为项目添加 Castle.ActiveRecord 的引用: 安装成功后,查看项目的引用如图: 配置文件 App.Config (MySQL) <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="activerecord" type="Castle.ActiveRecord…
Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架.AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务.4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新. 第一部分:ActiveRecord学习实践系列 1.Castle ActiveRecord学习实践(1):快速入门指南 2.Castle ActiveRecord学习…
Castle ActiveRecord框架是一个基于.NET的ORM框架,它实现了ActiveRecord设计模式.它本身就是基于NHibernate,只是封 装了NHibernate的大部分烦杂细节,对于需要持久化的类,只需继承自ActiveRecordBase类,并对类中的property赋予正确的 Attribute,而无需编写烦杂的mapping file.对于大型系统复杂的数据库逻辑,Castle project建议仍然使用NHibernate作为ORM,而对于数据库数据大批量的迁移.…
使用Castle ActiveRecord通常都是使用配置文件进行数据库连接配置.然后采用如下方式初始化: IConfigurationSource source = ConfigurationManager.GetSection("activerecord") as IConfigurationSource; ActiveRecordStarter.Initialize(Assembly.Load("ORM.Model"), source); 但是如果采用加密的数…
关于Castle 的开发可参考李会军老师的Castle 开发系列文章,里面有关于ActiveRecord学习实践系列和Castle IOC容器系列两个部分,是比较好的教程. 这里主要说明在Castle ActiveRecord的配置中需要注意的问题. 构建配置文件结构 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <secti…
来源:http://www.cnblogs.com/Terrylee/archive/2006/04/12/372823.html 一.HQL简单介绍HQL全名是Hibernate Query Language,它是一种完全面向对象的查询语言. 1.from 子句 from UserInfo from UserInfo as userinfo from UserInfo  userinfo UserInfo:是类名称,而不是[ActiveRecord(Table = "UserInfo"…
Model中的Demo: using Castle.ActiveRecord; using Castle.ActiveRecord.Queries; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Models { //指定数据表,Lazy为延迟加载,一旦指定为延迟加载,其属性应该加上virtu…
来源:http://www.cnblogs.com/zxj159/p/4082987.html 配置数据库驱动: Model层引用:Castle.ActiveRecord.dll.NHibernate.dll Web层引用:Model.Castle.ActiveRecord-3.0.RC中的所有DLL Web中新增NHibernate.config配置文件: <?xml version="1.0" encoding="utf-8"?> <activ…
简介 来源:http://www.cnblogs.com/zxj159/p/4082987.html 一.Active Record(活动记录)模式 Active Record是业务逻辑层中(<企业应用架构模式>将该模式归为数据源模式)常用的一种框架模式,尤其在底层数据库模型匹配业务模型时它特别有用,它是一种以数据库驱动为主的框架模式. 通常,数据库中的每张表都对应一个业务对象.业务对象表示表中的一行,并且包含数据.行为以及持久化该对象的工具,此外还有添加新实例和查找对象集合所需的方法. 在A…
参考.来源:http://www.cnblogs.com/Terrylee/archive/2006/04/13/374173.html https://github.com/castleproject/ActiveRecord/blob/master/docs/validation-support.md https://github.com/castleproject/ActiveRecord https://github.com/castleproject/ActiveRecord/blob…
嵌套的情况下,怎么处理Castle.ActiveRecord的事务? 今天试了一下,原来还是很简单的,只需要使用Castle.ActiveRecord.TransactionMode.Inherits就可以了. http://www.castleproject.org/activerecord/documentation/trunk/usersguide/scopes.html protected void btnInsert_Click(object sender, EventArgs e)…
1.Could not compile the mapping document: (string)错误? 如果确保配置文件没有错误,那请检查用户身份,必须是Administrator才行,即使有管理员权限的其它用户也不行.…
在 本公司的 IBeamMDAA 框架下,如果是配置为本机调试时,AR的查询缓存工作正常,但如果部署到服务器上,工作不正常,二级缓存配置为使用 MemoryCahcheD 服务器,二级缓存没有能够根据不同的参数变化返回 不同的查询结果,造成问题,因此,只能将查询缓存关闭. 由于时间紧张,还来不级排查原因.只能不使用 查询缓存的简单处理.…
一.延迟加载 //用户发布的主题,一对多:Table:外键表:ColumnKey:外键:Lazy:延迟加载:Cascade:级联操作(级联删除) [HasMany(typeof(ThemeInfo), Table = "ThemeInfo", ColumnKey = "UserID", Lazy = true, Cascade = ManyRelationCascadeEnum.Delete)] public virtual IList<ThemeInfo&g…
代码: public void UpdateThemeInfo(int id) { //事务 using (TransactionScope ctran = new TransactionScope()) { try { Models.ThemeInfo model = Models.ThemeInfo.Find(id); if (model != null) { model.CreatDate = DateTime.Now; model.Subject = "修改测试" + id;…
暂无 参考:http://terrylee.cnblogs.com/archive/2006/04/14/374829.html…
最近试了试castle,NND,老是报“Could not find the dialect in the configuration”,明明配的没问题,上网搜索所有教程都是这么配的.后来在一国外的网站解决NHibernate的问题的帖子,看的一哥们说把hibernate去了试试,当时也没试(关键是那帖子说这个办法没解决问题).囧rz,今天试了试,居然解决问题了.估计可能和castle的版本有关系(顺便说一下castle网站的源码的例子也是不对的,NND).希望遇到同样错误的哥们能搜到此文章.原…
转自:http://terrylee.cnblogs.com/archive/2006/04/28/castl_ioc_article.html Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架.AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务.4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新. 第一部分:Activ…
说明:本系列文章参考自李会军先生的Castle 开发系列文章,然后记录自己在学习时遇到的一些问题,记录之. 主要内容 1.Castle配置学习 2.初始化配置 Castle配置学习 <?xml version="1.0"?> <configuration> <configSections> <section name="activerecord" type="Castle.ActiveRecord.Framewor…
业务接口+UI层的设计(基于Castle实现的Repository) Repository层设计的文章见:[http://www.cnblogs.com/yomho/p/3297042.html]   一.概要设计 上面Reposity 应该为 Repository 特此更正,也不打算作图更正了.   二.业务Server层 业务层Server是承Repository层,启UI层的重要层, UI层的数据和Repository层的数据传递必须经过它 业务层的扩展非常必要 所以采用IServer<T…
Repository层设计的文章见:[http://www.cnblogs.com/yomho/p/3297042.html]   一.概要设计 上面Reposity 应该为 Repository 特此更正,也不打算作图更正了.   二.业务Server层 业务层Server是承Repository层,启UI层的重要层, UI层的数据和Repository层的数据传递必须经过它 业务层的扩展非常必要 所以采用IServer<TEntity>的设计方式 接口设计如下: namespace Yom…
经过了上篇IRepository和IRepository<T>的讨论[文章地址为:http://www.cnblogs.com/yomho/p/3296759.html] 我选择了IRepository作为我重构框架的仓储接口 一.接口定义   新的IRepository接口设计如下: namespace Yom.NFramework2_0 { public interface IRepository<TCompositeKey> where TCompositeKey : IEq…
新的IRepository接口+搜索和排序解耦(+基于Castle实现) 经过了上篇IRepository和IRepository<T>的讨论[文章地址为:http://www.cnblogs.com/yomho/p/3296759.html] 我选择了IRepository作为我重构框架的仓储接口 一.接口定义   新的IRepository接口设计如下: 1 namespace Yom.NFramework2_0 2 { 3 public interface IRepository<…
---恢复内容开始--- Castle是针对.NET平台的一个非常优秀的开源项目,重点是开源的哦.它在NHibernate的基础上进一步封装,其原理基本与NHibernate相同,但它较好地解决NHibernate的缺陷,从ORM(对象关系映射)到IOC(inversion of control,控制反转)容器,再到web层的MVC框架,基本上包括整个开发过程的所有内容. 在VS2013 MVC4+SQL Server 2008的环境下配置Castle可以简单分为如下4个步骤 (一)引用Cast…