⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nbear - 支持基于操作符重载的强类型where及orderby查询 - teddy's knowledge base - 博客园.htm

📁 学习nbear很好的教程,我现在也在用,希望大家能喜欢
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  <LI style="MARGIN-RIGHT: 4px; TEXT-ALIGN: right">--flyinging之路 
  <LI style="WORD-BREAK: break-all"><A 
  id=SingleColumn1_ctl04_CommentList_ctl05_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/11/23/523807.html#570074">5.&nbsp;re: 
  NBear案例源码 - 简易AJAX留言板 [Updated 10/31 Powered by NBear V3.0.0 preview]</A> 
  <LI style="WORD-BREAK: break-all">在同事的推荐下来看这个框架,感觉很不错,回家再仔细看看 
  <LI style="MARGIN-RIGHT: 4px; TEXT-ALIGN: right">--假正经哥哥[匿名] </LI></UL></DIV>
<H3>阅读排行榜</H3>
<DIV class=RecentComment>
<UL style="WORD-BREAK: break-all">
  <LI><A id=SingleColumn1__3fcc82b_TopList_ctl01_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2005/12/30/308407.aspx">1.&nbsp;没有ORM或代码生成数据就不能持久化了? 
  - 用范型技术代替代码生成!(9606)</A> 
  <LI><A id=SingleColumn1__3fcc82b_TopList_ctl02_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2005/06/11/172737.aspx">2.&nbsp;.Net环境下基于Ajax的MVC方案(9428)</A> 

  <LI><A id=SingleColumn1__3fcc82b_TopList_ctl03_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2005/05/11/153561.aspx">3.&nbsp;Asp.Net中页面运行时动态载入的UserControl内元素的事件处理的注意事项(7374)</A> 

  <LI><A id=SingleColumn1__3fcc82b_TopList_ctl04_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2005/07/21/197315.aspx">4.&nbsp;O/R 
  Mapping中对象关系映射解决方案汇总(7151)</A> 
  <LI><A id=SingleColumn1__3fcc82b_TopList_ctl05_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/04/18/376067.aspx">5.&nbsp;.Net 
  2.0: Entity as DTO vs Dataset as DTO / Xml Serialization vs JSON 
  Serialization(6560)</A> </LI></UL></DIV>
<H3>评论排行榜</H3>
<DIV class=RecentComment>
<UL style="WORD-BREAK: break-all">
  <LI><A id=SingleColumn1__2490bfd_TopList_ctl01_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/08/04/467894.aspx">1.&nbsp;NBear中文用户手册发布(104)</A> 

  <LI><A id=SingleColumn1__2490bfd_TopList_ctl02_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/11/01/545885.aspx">2.&nbsp;NBearV3.0.0 
  Preview发布 - 全新ORM实现![11/1 更新:全面支持实体属性级联更新](80)</A> 
  <LI><A id=SingleColumn1__2490bfd_TopList_ctl03_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/09/09/494036.aspx">3.&nbsp;NBearV2视频教学系列总索引,欢迎多提意见和建议[09/21更新至IoC篇](63)</A> 

  <LI><A id=SingleColumn1__2490bfd_TopList_ctl04_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2005/02/03/101488.aspx">4.&nbsp;51Job职位搜索助手(源码)(58)</A> 

  <LI><A id=SingleColumn1__2490bfd_TopList_ctl05_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2005/12/30/308407.aspx">5.&nbsp;没有ORM或代码生成数据就不能持久化了? 
  - 用范型技术代替代码生成!(50)</A> </LI></UL></DIV>
<H3>60天内阅读排行</H3>
<DIV class=RecentComment>
<UL>
  <LI><A id=SingleColumn1__2554a75_TopList_ctl01_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/10/08/523807.aspx">1.&nbsp;NBear案例源码 
  - 简易AJAX留言板 [Updated 10/31 Powered by NBear V3.0.0 preview](4832)</A> 
  <LI><A id=SingleColumn1__2554a75_TopList_ctl02_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/11/01/545885.aspx">2.&nbsp;NBearV3.0.0 
  Preview发布 - 全新ORM实现![11/1 更新:全面支持实体属性级联更新](3136)</A> 
  <LI><A id=SingleColumn1__2554a75_TopList_ctl03_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/11/03/549118.aspx">3.&nbsp;NBearV3 
  Step by Step教程——ORM篇(2614)</A> 
  <LI><A id=SingleColumn1__2554a75_TopList_ctl04_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/11/09/554823.aspx">4.&nbsp;NBearV3——ORM实体关系设计速查手册(2194)</A> 

  <LI><A id=SingleColumn1__2554a75_TopList_ctl05_Hyperlink1 
  href="http://www.cnblogs.com/teddyma/archive/2006/11/07/553562.aspx">5.&nbsp;NBearV3中文教程总目录(1848)</A> 
  </LI></UL></DIV></DIV>
<DIV id=main>
<DIV class=post>
<H2><A id=viewpost1_TitleUrl 
href="http://www.cnblogs.com/teddyma/archive/2006/08/27/487843.html">NBear - 
支持基于操作符重载的强类型Where及OrderBy查询</A> </H2>
<P>从v2.2.1版起,<A style="COLOR: #0000ff" 
href="http://sf.net/projects/nbear">NBear</A>开始支持强类型的实体查询语法。例如,我们可以以如下的语法查询需要的数据:</P>
<P><SPAN 
style="FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">[] users = 
gateway.Select&lt;</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">&gt;(</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">_Entity.</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">.Id 
&gt; 5 | _Entity.</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">.LoginId 
== </SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #800000; FONT-FAMILY: 'Verdana'">"teddy"</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">, 
_Entity.</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">.Id.Desc 
&amp; _Entity.</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">.LoginId.Asc</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">);</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">&nbsp;</SPAN></P>
<P>注意黑体部分,Select函数的两个参数分别为两个强类型表达式,一个是一组查询条件,另一个是排序条件。&nbsp;</P>
<P>以上代码等价于:&nbsp;</P>
<P><SPAN 
style="FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">[] users = 
gateway.Select&lt;</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #008080; FONT-FAMILY: 'Verdana'">LocalUser</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">&gt;(</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">"[Id] 
&gt; @Id or [LoginId] = @LoginId</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">"</SPAN><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">, 
"[Id] desc, [LoginId]", new object[] { 5, "teddy" }</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">);</SPAN><SPAN 
style="FONT-SIZE: 9pt; COLOR: #000000; FONT-FAMILY: 'Verdana'">&nbsp;</SPAN></P>
<P>我们可以看到,采用第一种语法的好处有:&nbsp;<BR><BR>· 强类型,对于代码错误拥有编译器错误检查; </P>
<P>· 更直观; </P>
<P>· 独立与数据库特定的SQL语法,从而隔离了业务层和特定数据库的耦合;&nbsp;</P>
<P><SPAN style="FONT-WEIGHT: bold">使用Entity Configurator生成强类型实体查询代码</SPAN></P>
<P>要让程序能够访问到_Entity命名空间下的这些强类型查询对象,需要先使用Entity Configurator生成强类型实体查询代码。只需在Entity 
Configurator中载入实体程序集,设置要对应的元数据,点击工具的Code-&gt;Generate EntityQuery 
Code菜单项,再将生成的代码复制到需要的任意程序集中,生成的代码及包含了所有实体的强类型查询对象。</P>
<P><SPAN style="FONT-WEIGHT: bold">可用操作符</SPAN></P>
<P>NBear的像类型实体查询语法支持的操作符有:&amp;(与),|(或),==(等于),!=(不等于),&gt;(大于),&lt;(小与),&gt;=(大于等于),&lt;=(小于等于),!(否),以及.Like()注意,Like是一个函数,可以以_Entity.User.LoginId.Like("teddy")这样的方式使用。</P>
<P>对于OrderBy部分,唯一的可用操作符是&amp;,即表示组合多个排序条件。<BR><BR><STRONG>代码示例</STRONG><BR><BR>下面的代码是使用Entity 
Configurator工具为<A style="COLOR: #0000ff" 
href="http://www.cnblogs.com/teddyma/archive/2006/08/25/486312.html">使用Entity 
Configurator设置实体元数据、生成数据库创建脚本</A>一文中所示的实体生成的强类型实体查询代码:<BR><BR></P>
<DIV 
style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/None.gif" 
align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">namespace</SPAN><SPAN 
style="COLOR: #000000">&nbsp;_Entity<BR><IMG 
id=Codehighlighter1_26_3003_Open_Image 
onclick="this.style.display='none'; Codehighlighter1_26_3003_Open_Text.style.display='none'; Codehighlighter1_26_3003_Closed_Image.style.display='inline'; Codehighlighter1_26_3003_Closed_Text.style.display='inline';" 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/ExpandedBlockStart.gif" 
align=top><IMG id=Codehighlighter1_26_3003_Closed_Image style="DISPLAY: none" 
onclick="this.style.display='none'; Codehighlighter1_26_3003_Closed_Text.style.display='none'; Codehighlighter1_26_3003_Open_Image.style.display='inline'; Codehighlighter1_26_3003_Open_Text.style.display='inline';" 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/ContractedBlock.gif" 
align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN 
id=Codehighlighter1_26_3003_Closed_Text 
style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/dot.gif"></SPAN><SPAN 
id=Codehighlighter1_26_3003_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/InBlock.gif" 
align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">public</SPAN><SPAN 
style="COLOR: #000000">&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">class</SPAN><SPAN 
style="COLOR: #000000">&nbsp;AgentUser<BR><IMG 
id=Codehighlighter1_67_451_Open_Image 
onclick="this.style.display='none'; Codehighlighter1_67_451_Open_Text.style.display='none'; Codehighlighter1_67_451_Closed_Image.style.display='inline'; Codehighlighter1_67_451_Closed_Text.style.display='inline';" 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/ExpandedSubBlockStart.gif" 
align=top><IMG id=Codehighlighter1_67_451_Closed_Image style="DISPLAY: none" 
onclick="this.style.display='none'; Codehighlighter1_67_451_Closed_Text.style.display='none'; Codehighlighter1_67_451_Open_Image.style.display='inline'; Codehighlighter1_67_451_Open_Text.style.display='inline';" 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/ContractedSubBlock.gif" 
align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN 
id=Codehighlighter1_67_451_Closed_Text 
style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/dot.gif"></SPAN><SPAN 
id=Codehighlighter1_67_451_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/InBlock.gif" 
align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">public</SPAN><SPAN 
style="COLOR: #000000">&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">static</SPAN><SPAN 
style="COLOR: #000000">&nbsp;PropertyItem&nbsp;LoginId&nbsp;</SPAN><SPAN 
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">new</SPAN><SPAN 
style="COLOR: #000000">&nbsp;PropertyItem(</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">LoginId</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">@</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG 
src="NBear - 支持基于操作符重载的强类型Where及OrderBy查询 - Teddy's Knowledge Base - 博客园_files/InBlock.gif" 
align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">public</SPAN><SPAN 
style="COLOR: #000000">&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">static</SPAN><SPAN 
style="COLOR: #000000">&nbsp;PropertyItem&nbsp;Id&nbsp;</SPAN><SPAN 
style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN 
style="COLOR: #0000ff">new</SPAN><SPAN 
style="COLOR: #000000">&nbsp;PropertyItem(</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Id</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">]</SPAN><SPAN 
style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -