博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

2011年3月31日

摘要: 问题:KAM中有一个department,department有多个IATA ,如果要按照KAM的Name或者department的Name来查,则很简单 from KAM as kam where kam.Name="**" and kam.Department.Name="***" 但是如果是按照IATA的名字呢? from KAM as kam where kam.Name="**" and kam.Department.Name="***" and kam.Depatment.IATAList.IATACo 阅读全文

posted @ 2011-03-31 09:39 codingsilence 阅读(152) 评论(0) 推荐(0)

摘要: 使用ActiveRecord作为数据库持久层已经有一段时间,曾经发现这样一个现象,数据库中的一些Int,DateTime等字段被设置为了0,0001-01-01。期间我问技术总工,Hibernate在查询过程中会不会修改数据库?技术总工回答,绝对不可能!于是我以为是有同事在存入数据的时候没有初始化数据造成的。事实证明,这个我钦佩得五体投地的资深JAVA架构师错了。 答案是会!而且容易引起重大的BUG! 在一对多,多对多的映射使用中,为了防止取到过多的数据,我们会设置Lazy=True,延迟加载。在调用延迟加载的对象,都要加上Using(new SessionScope()).如下 CodeCo 阅读全文

posted @ 2011-03-31 09:38 codingsilence 阅读(312) 评论(0) 推荐(0)

摘要: 学习继承,纯属意外,数据库的设计者硬要把A,B,C三个完全不同的对象存在同一张表中,并振振有词说A,B,C三个对象的内容比较类似,都有Name,Address等属性,加一个Type标识就可以了。事后证明这个是数据库的一大败笔,因为这么项目中有D对象,D对象与A对象是一对一关系,与B对象是一对多关系,与C对象是多对多关系...... 这可苦了我了,按照一个表一个对象的思路,原来A,B,C作为一个对象 O,里面有个Type属性,当Type为1的时候为A,为2的时候为B,为3的时候为C。D对象中,几个属性:O(表示A),OList(表示B),OList2(表示C)。开发的过程中,开发人员都问我,D里 阅读全文

posted @ 2011-03-31 09:36 codingsilence 阅读(231) 评论(0) 推荐(0)

摘要: 根据数库的设计,有密切联系的对象的增加,删除,修改设置级联操作,在使用中会有很大的便利但是也有些需要注意的地方。之前的项目使用,为了避免不必要的麻烦,一律设置成了不级联操作。后面对象的使用时,很多地方多写了多余重复的代码。其实,在使用前根据对象的属性,设计好级联操作,能带来很大的便利。本文从多对多,和一对多两个方面,并针对数据库设计中主外键的属性来分析对象的级联。 由于学习Castle是从TerryLee的博文中开始,采用他老人家的习惯举例,以向他老人家致敬^_^1、一对多 假设一个博客有多个帖子,即一个Blog对应多个Post,权且称Blog为父对象,Post为子对象 一对多的级联有几种方. 阅读全文

posted @ 2011-03-31 09:35 codingsilence 阅读(219) 评论(0) 推荐(0)

摘要: 最近这个项目采用了我积极推荐的CASTLE ACTIVERECORD作为项目的持久层,项目实施过程中遇到了一些自己早期测试没有遇到的问题,加上其他的一些零零碎碎的问题,总结一下1、ACTIVE RECORD自带的代码生成器并不支持ORACLE。我的做法是把数据库设置到SQL SERVER中,再生成的2、如果ORACLE的主键是自增序列,则采用下面的写法CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->[PrimaryKey(Primar 阅读全文

posted @ 2011-03-31 09:34 codingsilence 阅读(276) 评论(0) 推荐(0)

摘要: 1.先在Domain中建一个实体类,如Mappublic class Map{private string _mapCreator;private int _mapRecords;public string MapCreator{get{return _mapCreator;}set{_mapCreator=value;}}public int MapRecords{get{return _mapRecords;}set{_mapRecords=value;}}public Map(string creator,int count){_mapCreator=creator;_mapRecord 阅读全文

posted @ 2011-03-31 09:30 codingsilence 阅读(175) 评论(0) 推荐(0)

摘要: 由于最近的要做的项目周期时间是在太短了,因此把 ActiveRecord给用上了。 结果用着用着问题就来了。者碰上配置多数据库怎么办啊,后来网上也找了一些资料。但是基本上都是千篇一律,真搞不懂那帮家伙那样配置能不能用啊。。。反正我折腾了一上午都没配置出来。 老是报错:“Couldnotobtaintypefromname'{0}',项目的类名”, 结果越想越不对劲,把源代码拿来研究研究,问题找到了:在 ActiveRecord 源码中,文件目录是这样的:/Castle/Castle-all/ActiveRecord/Castle.ActiveRecord/Framework/C 阅读全文

posted @ 2011-03-31 09:25 codingsilence 阅读(174) 评论(0) 推荐(0)

摘要: 当from中有多个表时,而select 中只需要一个表中的所有数据,不必像sql一样用*,只要把类名写出来就行,摸索出来的经验,记下,希望对大家有帮助.见下面查询,特别是加红部分. [DataObjectMethod(DataObjectMethodType.Select)] public static ZjcXueshenghuojiang[] List(int xuenian, int xueqi,long banjiId,long banjiStudentId) { //BaseBanjiStudent stu = new BaseBanjiStudent(); //stu.BanjiS 阅读全文

posted @ 2011-03-31 09:17 codingsilence 阅读(183) 评论(0) 推荐(0)

摘要: 有时候如果我们的配置信息是动态的获取,这种方式就会变得非常有用。示例 C# 代码:usingSystem;usingNUnit.Framework;usingtest;usingSystem.Reflection;usingCastle.ActiveRecord.Framework.Config;usingCastle.ActiveRecord;namespacetest._TestUnitCase{/**////<summary>///BlogTest的摘要说明。///</summary>[TestFixture]publicclassBlogTest{publicB 阅读全文

posted @ 2011-03-31 09:14 codingsilence 阅读(204) 评论(0) 推荐(0)

摘要: ActiveRecord 的多数据库配置基本沿袭了 NHibernate 的思想,只不过在配置文件结构上作了些调整。1. 采用继承方式,归纳使用同一数据库的类型。比如 A、B、C、D、E 中 A、B连接到数据库Test1,C、D连接到Test2,而E连接到缺省的Test,那么具体的代码就会是下面这种方式。public abstract class Test1Base : ActiveRecordBase{}public abstract class Test2Base : ActiveRecordBase{}[ActiveRecord("A")]public class A 阅读全文

posted @ 2011-03-31 09:12 codingsilence 阅读(1041) 评论(0) 推荐(0)