可是最近重写一套 CodeSmith 代码生成模板的时候,发现自己编码能力长进不少:有能力删除大量代码了。删除得很顺利,即使不舍;看上去这是个好事,可也是个坏事:现已难以回忆起当初为什么删这些代码、更回忆不起来最初为什么加这些代码。
这些决策信息的丢失真是让人痛心疾首。
接下来,我要实现一个好玩的东西:维护对象在内存中的引用一致性。这一次,我可不想让那些左右决策的依据不翼而飞了;她们很珍贵:那是我的思路。
另外介绍一下上期成果吧,其实就是发个广告啦:
很多人、包括直到前不久离职的我,都在进行着 基于数据库且数据库优先 的简单应用开发。所幸的是大家都使用着相同的实现模式:Entity -(IDal、Dal)- Bll。
于是,我要写一套 CodeSmith 模板,让有缘人看到、使用 或 修改。
包括这套,一共编写了三套 CodeSmith 模板;
第一套实现了基本的可用功能,第二套添加了自认为有亮点的功能,这次重构并删除了那些自认为有亮点的功能;
所以也留下了一些心结:
- 枚举类型的字段。虽然可让代码强类型、可读性强,但使用字段注释和类型转换也可弥补。
- 视图中的唯一键。这个关系到分页性能,不过如果最多只返回 Top 500 之类的则也没啥差别。
- TransactionScope。SqlServer 2000 时需要启动 MsDtc 服务且影响性能,不过 SqlServer 2005 以上就不需要了。
-
说明
如果使用 CodeSmith 5.0,则在 CodeSmith 的 Template Explorer 的工具栏中点击第一个按钮(Create Template Folder Shortcut)指向 DatabaseBasedCodeGenerator 文件夹。
打开 Main.cst,编译后在 Properties 设定必填属性就可运行 Main.cst 了,运行后会生成完整的解决方案。
是否能编译则还要看你的数据库元素的命名是否重复。生成的主要是数据访问的实现:
其中 Filter 和 Condition 是为了让查询条件强类型而引入的。
Condition 弥补了 Filter 中条件只能与的缺陷。
所以,Condition 蕴含的 Sql 是依靠数据库元数据生成的,因为使用 CodeSmith,所以参考了其 SchemaExplorer 命名空间中类的命名:
相关推荐
册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞会很iu啊 册书UI害羞...
含羞草为什么会害羞.doc
网页动画素材 害羞鬼动画(抖音资料)网页动画素材 害羞鬼动画(抖音资料)网页动画素材 害羞鬼动画(抖音资料)网页动画素材 害羞鬼动画(抖音资料)网页动画素材 害羞鬼动画(抖音资料)网页动画素材 害羞鬼动画...
害羞心理学-[街头摄影如何不害羞秘籍].docx
大班评语害羞.docx
滚蛋吧!害羞君
害羞的小金鱼作文.doc
害羞者怎样进行心理调适.docx
SQTShyNavigationBar 缩小(害羞)的导航栏,随着用户滚动而自动调整,具有可自定义的全高和害羞高度。 我们的目标是尽可能强大,平稳地处理棘手的极端情况-即使这对您(开发人员)来说需要更多的集成工作。如何开始...
CSS3实现可爱害羞的小狗特效.zip
豆瓣害羞组nodejs读图版 url: #Components #Contact Me(Youngbye) : || My partner(Ricardo_Li) :
害羞只不过是一个坏习惯.docx
CSS3可爱害羞的小狗动画特效是一款纯CSS3实现的偷窥的小狗动画代码下载。
4种让害羞者的口语能力突破.doc
含羞草为什么会害羞的原因.doc
小学语文经典美文克服害羞的七个有效方法
初中语文 文摘(历史)情境性害羞是纸老虎
初中语文文摘生活为什么人一害羞脸就发红
纯css3绘制害羞的兔斯基表情动画特效源码.zip