惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
Netflix TechBlog - Medium
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
V
V2EX
IT之家
IT之家
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
D
Docker
S
Secure Thoughts
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
博客园_首页
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Security Archives - TechRepublic
Security Archives - TechRepublic
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
I
InfoQ
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
W
WeLiveSecurity
T
Troy Hunt's Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Scott Helme
Scott Helme
T
Tor Project blog
Know Your Adversary
Know Your Adversary
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
C
Cyber Attacks, Cyber Crime and Cyber Security
AI
AI
G
Google Developers Blog

博客园 - Awen

asp.net插件实现 一些顶级的设计站点(陆续更新) asp.net定时任务实现(原创) Monorail的一些常用的东西(验证码,分页。。。持续更新) 基于Monorail的系统功能模块化 SubSonic:亚音速之光 一个顶N个的NextResult 自娱自乐 3.5 -开篇有益 WinFormUI-Docking初级使用 一个喜欢网页设计的程序员 一个关于Excel的处理类(部分参考网络上) 抛开映射关系,不oo的数据访问写法 Javascript改观过程2 Javascript改观过程1 - Awen - 博客园 CEIMS项目笔记2:重复的,让工具做去! 备份&收集(持续更新)! CEIMS开发日记:项目计划 Jsp,.net! asp.net优化探讨系列(3)
SubSonic:我想要的动态查询
Awen · 2008-05-17 · via 博客园 - Awen

     以旁观的态度看了Linq to sql 很久了,没有之际运用的机会,表达式的语法很优美,易用性更是没话说,性能也没什么大问题,只是目前的开发工作始终是面向2.0,似乎升级的可能性很小,不可否认现在很多公司还用1.1开发,asp.net mvc框架亦如此,感觉还是monorail比较靠近自己。无论怎么说,日常的开发工作总是要面对一些重复的代码劳动,于是就有了代码工人的说法。不可否认,中小型程序开发,基本上很大部分都是基于数据驱动的开发,我们有了数据库,我们写代码,完工。好吧,既然这样我选择先当一名会取巧的工人,也就是会偷懒啦。好拉,说了那么多,下面这个东东,基本满足了我的要求。

先看下新版本的特性,就是下面的语法吸引了我的注意,原先的版本,数据操作都是基于 Active Record模式的,对单表操作支持很不错,但是多表就无能为力。现在简介明了,基本上T_sql的操作都有对应的API,如果你想用存储过程的话,那么SubSonic也是个不错的选择,因为它会帮你生成代码,这些代码将存储过程包装为方法,让你可以直接调用。现有的版本挺不错的,基本上要用的都有对应的解决方案!

Northwind.DB.Select().Top("5").From(Northwind.Product.Schema).ExecuteTypedList<MyProduct>();

这里的代码支持都是基于代码生成的,并不是运行时得到的。在你构架Web得时候,这些代码就会根据你的配置文件生成了。代码生成是基于模板的,而模板是我们熟悉的aspx文件,如此得亲近!因为代码是生成的,所以没有性能的损失,面对数据库的更改,其也能轻松面对。可以看到,语法很熟悉,没有编译器的天然支持,也能实现如此易用而优美的语法,这方面NBear做得也很强,并且两者也有很多相似的地方,Nbear提供了很多特性,应该说是工具吧,易用的同时,性能方面有一点点的损失,Mapping用动态生成IL,佩服作者,希望下个版本来得更猛烈些!两个都是很不错的框架,我觉得这两个东西都应该是Web开发者手中不可缺少的开发工具,它们能让我们的开发变得简单很多!
如果我们想得到原生态的DataReader,那么很简单

IDataReader rdr=new Query(Northwind.Product.Schema).ExecuteReader();

加入分页,只要设置Query对象得PageSize 和PageIndex 即可,直接连接,只要你按.就可以,我想不到有什么理由可以拒绝使用如此好用的工具!
更多动人的特性可以看看这个
http://subsonicproject.com/2-1-pakala/subsonic-version-2-1-pakala-preview-the-new-query-tool/
我想上面的演示会让你动心的。
其实我觉得SubSonic的框架先进性是落后于其易用性得,我想这也是它的成功之处,产品最终是拿来用的,SubSonic充分考虑到了易用性和方便性,这一点是很强的。关于查询的语法可以看官方网站上的示例,上面也有几个视频,挺不错的,不过要很有耐心才能看,呵呵。接下来会有一个实际的例子,因为项目的需要,定下来用monorail+SubSonic,没错,也就是Ceims啦。终于有机会动手了,不过要考完试之后!