摘要:
上次起了个很惊悚的标题,说是LinqToNhibernate无法多次使用Where子句,后来实践了一下发现问题不在多次使用Where,而在于使用了表达式参数,于是厚颜无耻的偷偷改了文章标题和内容-v-再后来又试了一次,发现还是可以用表达式参数的,上次提及的那个网页以及错误信息(Expression argument must be of type ICollection.) 都清楚明白的表明了:把... 阅读全文
摘要:
书接上回,解决目前最后一个问题:根据模版mapping自动生成各个可能的XXX专用mapping。上回简单的谈了一下思路思路把那些xml反序列化,然后Clone出来几份,replace一些东西之后再序列化但是,在什么时机呢,由谁来做呢?可以有很多的选择。比如说可以在编译之前手动执行一个tool做这件事,然后把新得到的那些mapping都编译进去。但是这意味着每次客户追加一个XXX的可能取值,我们都... 阅读全文
摘要:
上文说到LinqToNhibernate的DateTime处理上存在一个陷阱。仔细想想的话,其实应该不仅仅是针对DateTime,而是LinqToNhibernate只能处理到hbm映射过的property这一个级别,再取property的property的时候就会有一些莫名其妙的问题。这次来谈谈今天写代码的时候碰到的另一个问题:无法使用表达式参数。先来看看我原来写的代码:代码Code highl... 阅读全文
摘要:
能用LinqToNhibernate还是很爽的~~能获得编译时类型检查就不说了,就连where子句的复用都比用HQL爽快很多~~~比如我有这种有时间限制的实体[代码]然后我给实现这种接口的实体统一实现时间判断的where子句代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlig... 阅读全文
摘要:
昨天下午老老实实的干着活,突然被领导叫去面试。说是面试,其实就是走走形式。因为一来项目急着要人,二来又是推荐来的,应该也已经经历了公司的考核。面试的对象是个刚刚走出校园的学生,有点项目的实际经验,还算不错吧。但是针对我们的项目而言,一来没有BS架构的经验(其实我也不咋有UI的经验),二来C#不够熟悉,估计还得有一段时间才能投入真正的开发。第一次面试别人,还是诚惶诚恐的。一来完全没有准备,只能趁领导... 阅读全文
摘要:
上一次我们看到了如何让NHibernate通过写多个mapping“半自动”的实现我们动态映射的需求。这一次我们看一下如何实现多对一之类的关系,以及如何存取数据。1 两张XXX表存在多对一之类关系时的映射由于只指定Class,NHibernate还是不知道该Class具体应该映射到哪张表,于是需要同样的指定entity name代码Code highlighting pro... 阅读全文
摘要:
首先谈一下背景。最近正要上马的项目中,遇到一个客户的需求:表名是动态的,根据数据库里的某些值来决定。举个例子来说需求有主表Student,有两列ID和Class然后有从表XXXStudentDetail,其中XXX是Student表中的Class的值,取值范围不受限也就是说每有一种Class就要添加一张StudentDetail表面对需求,技术上考虑了两个方案,但是都碰壁了1 在NamingStr... 阅读全文
摘要:
JIT之前在CLR第一次调用一个method时,当然首先要JIT这段代码。JIT之前就需要CLR保证所需的Assembly都可以成功的被load。如果load成功,CLR会利用Assembly中的metadata在托管堆上创建要使用到的Type本身(Type Object)Type Object的结构,由两部分组成第一部分包含Type object pointer,Sync block index... 阅读全文
摘要:
一点小经验,写下来做个笔记,也与大家分享一下今天在进行性能调优的时候发现一个问题:一句HQL经Nhibernate翻译出来变成SQL后执行效率缓慢首先来看一下翻译出来的SQL语句代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--execsp_exec... 阅读全文
摘要:
上回说到在给BDC添加Updater方法的时候又遇到了不顺。这回就简要的说说如何做出一个Updater来。首先是解决上次图中的那个“Unable to find the default edit form for list ...”的问题既然他说找不到咱就创建一个之后笔者又遭遇了各种各样的困难,主要集中在Identifier的ReadOnly方面。先贴出最终成功的bdcm文... 阅读全文