﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-咖喱克斯</title><link>http://www.cnblogs.com/galex/</link><description>关注，利用，分享</description><language>zh-cn</language><lastBuildDate>Wed, 20 Aug 2008 13:27:19 GMT</lastBuildDate><pubDate>Wed, 20 Aug 2008 13:27:19 GMT</pubDate><ttl>60</ttl><item><title>好久没有更新了</title><link>http://www.cnblogs.com/galex/archive/2008/05/08/1188149.html</link><dc:creator>关小羽</dc:creator><author>关小羽</author><pubDate>Thu, 08 May 2008 03:37:00 GMT</pubDate><guid>http://www.cnblogs.com/galex/archive/2008/05/08/1188149.html</guid><wfw:comment>http://www.cnblogs.com/galex/comments/1188149.html</wfw:comment><comments>http://www.cnblogs.com/galex/archive/2008/05/08/1188149.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/galex/comments/commentRss/1188149.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/galex/services/trackbacks/1188149.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;真是太对不起自己了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;由于工作和生活都忙，还好不是一团乱。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;等周会开完，公司的考核结束，我继续写LINQ。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src ="http://www.cnblogs.com/galex/aggbug/1188149.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41804/" target="_blank">[新闻]Google云计算服务系统本周严重崩溃</a>]]></description></item><item><title>LINQ(3): HelloWorld的最后一个例子</title><link>http://www.cnblogs.com/galex/archive/2008/04/14/1153164.html</link><dc:creator>关小羽</dc:creator><author>关小羽</author><pubDate>Mon, 14 Apr 2008 10:18:00 GMT</pubDate><guid>http://www.cnblogs.com/galex/archive/2008/04/14/1153164.html</guid><wfw:comment>http://www.cnblogs.com/galex/comments/1153164.html</wfw:comment><comments>http://www.cnblogs.com/galex/archive/2008/04/14/1153164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/galex/comments/commentRss/1153164.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/galex/services/trackbacks/1153164.html</trackback:ping><description><![CDATA[<p><font face="Verdana">　　今天我们会把经典的LINQ to SQL入门的例子过掉，然后结束第一章，要不老在HelloWorld徘徊，爸爸会骂我的。</font></p>
<p><font face="Verdana">　　要想在程序里使用LINQ to SQL，书上说要先建立对应的实体类(Entity Classes)，所幸的是数据库中的表和字段都能通过Attribute的方式和相关的实体类对应，甚至主键都能标明，只是要引用System.Data.Linq.Mapping命名空间。还需要准备的是提供集成于编程语言查询的数据上下文对象System.Data.Linq.DataContext，它能把对内存对象的数据请求翻译成对数据库的SQL查询，并把执行得到的结果存成集合。如果本机上安装了SQL SERVER 2005 EXPRESS以上的数据库引擎服务，直接把MDF文件的绝对路径传入构造函数就可以方便地初始化这个DataContext对象，通过GetTable就能建立数据表和实体类某实例的映射，操作真的是越来越简便了，一如以下代码：<br />
</font></p>
<p><font face="Verdana"></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"><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Linq;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Data.Linq;<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Data.Linq.Mapping;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HelloLinqToSql<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_117_653_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_117_653_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_117_653_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_117_653_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_117_653_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_117_653_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_117_653_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_117_653_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_117_653_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="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_117_653_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />[Table(Name</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">Contacts</span><span style="color: #800000">"</span><span style="color: #000000">)]<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Contact<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img id="Codehighlighter1_158_328_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_158_328_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_158_328_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_158_328_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_158_328_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_158_328_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_158_328_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_158_328_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_158_328_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="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_158_328_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />[Column(IsPrimaryKey</span><span style="color: #000000">=</span><span style="color: #0000ff">true</span><span style="color: #000000">)]<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img id="Codehighlighter1_209_222_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_209_222_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_209_222_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_209_222_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_209_222_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_209_222_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_209_222_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_209_222_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;ContactID&nbsp;</span><span id="Codehighlighter1_209_222_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="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_209_222_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #0000ff">get</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />[Column(Name</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">ContactName</span><span style="color: #800000">"</span><span style="color: #000000">)]<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img id="Codehighlighter1_271_284_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_271_284_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_271_284_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_271_284_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_271_284_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_271_284_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_271_284_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_271_284_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;Name&nbsp;</span><span id="Codehighlighter1_271_284_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="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_271_284_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #0000ff">get</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />[Column]<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img id="Codehighlighter1_313_326_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_313_326_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_313_326_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_313_326_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_313_326_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_313_326_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_313_326_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_313_326_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;City&nbsp;</span><span id="Codehighlighter1_313_326_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="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_313_326_Open_Text"><span style="color: #000000">{&nbsp;</span><span style="color: #0000ff">get</span><span style="color: #000000">;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main()<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img id="Codehighlighter1_348_651_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_348_651_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_348_651_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_348_651_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_348_651_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_348_651_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_348_651_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_348_651_Open_Text').style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_348_651_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="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_348_651_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;path&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />System.IO.Path.GetFullPath(</span><span style="color: #800000">@"</span><span style="color: #800000">..\..\..\..\Data\northwnd.mdf</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />DataContext&nbsp;db&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataContext(path);<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />var&nbsp;contacts&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />from&nbsp;contact&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;db.GetTable</span><span style="color: #000000">&lt;</span><span style="color: #000000">Contact</span><span style="color: #000000">&gt;</span><span style="color: #000000">()<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;contact.City&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Paris</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />select&nbsp;contact;<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(var&nbsp;contact&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;contacts)<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Bonjour&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">+</span><span style="color: #000000">contact.Name);<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<p><br />
　　由上面的例子我们看到，使用LINQ对数据库进行强类型的访问简直是易如反掌。在整个过程中，LINQ to SQL自动为我们做了什么呢？打开数据库链接，告别conn.Open()；生成SQL查询语句，比我们自个去拼凑queryString片段来得更安全；执行对数据库的命令，甚至你都不用想究竟是ExecuteReader还是别的；把执行返回的结果填充至内存对象，这下连while都省去了。先别比较运行的效率，至少开发的效率和准确度都大大提高了。</font></p>
<p><font face="Verdana">　　写书的老外马上意识到读者会问大型复杂的SQL查询和存储过程怎么办，答案必然是没有问题的的，另外好像还有图形化设计器支持呢。世界怎么都变成这样了，不过简单点也好&#8230;&#8230;</font></p>
<img src ="http://www.cnblogs.com/galex/aggbug/1153164.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41805/" target="_blank">[新闻]张亚勤一改陈永正做法 微软举报洪磊为推广Vista</a>]]></description></item><item><title>LINQ(3): HelloWorld的第二个例子</title><link>http://www.cnblogs.com/galex/archive/2008/04/12/1150674.html</link><dc:creator>关小羽</dc:creator><author>关小羽</author><pubDate>Sat, 12 Apr 2008 13:22:00 GMT</pubDate><guid>http://www.cnblogs.com/galex/archive/2008/04/12/1150674.html</guid><wfw:comment>http://www.cnblogs.com/galex/comments/1150674.html</wfw:comment><comments>http://www.cnblogs.com/galex/archive/2008/04/12/1150674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/galex/comments/commentRss/1150674.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/galex/services/trackbacks/1150674.html</trackback:ping><description><![CDATA[摘要: 继续我们LINQ的学习，昨天体验了LINQ to Object，今天轮到LINQ to XML的入门程序了。我之前基本上很少用到XML，但经常能从同事的口中听到 XML DOM 和 XQuery 之类的词，可见其普及型之高，不学不行。原来XML常用于各种应用间交换数据，存储配置信息，持久化临时数据，生成网页和报表，无所不能！　　虽然应用如此广泛，但是至今为止多数的编程语言都没有生来就支持XML，而&nbsp;&nbsp;<a href='http://www.cnblogs.com/galex/archive/2008/04/12/1150674.html'>阅读全文</a><img src ="http://www.cnblogs.com/galex/aggbug/1150674.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41802/" target="_blank">[新闻]微软Office 14即将展开Alpha测试</a>]]></description></item><item><title>LINQ(2): 内存对象查询的HelloWorld程序</title><link>http://www.cnblogs.com/galex/archive/2008/04/11/1148863.html</link><dc:creator>关小羽</dc:creator><author>关小羽</author><pubDate>Fri, 11 Apr 2008 10:38:00 GMT</pubDate><guid>http://www.cnblogs.com/galex/archive/2008/04/11/1148863.html</guid><wfw:comment>http://www.cnblogs.com/galex/comments/1148863.html</wfw:comment><comments>http://www.cnblogs.com/galex/archive/2008/04/11/1148863.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/galex/comments/commentRss/1148863.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/galex/services/trackbacks/1148863.html</trackback:ping><description><![CDATA[摘要: 在展示这段简单的代码之前，书上特意提到了LINQ所需的编译和运行环境要求。大家都知道，LINQ是.NET 3.5中自带的一组升级功能，其实指的是编译器和类库（.NET FX），而不是运行环境（.NET CLR），这就意味着我们用LINQ编写的项目经过编译后，能正常地在.NET 2.0上运行。后来在脚注下标出来说，LINQ to SQL至少要运行在.NET 2.0 SP1之上。　　　　废话说完，开始&nbsp;&nbsp;<a href='http://www.cnblogs.com/galex/archive/2008/04/11/1148863.html'>阅读全文</a><img src ="http://www.cnblogs.com/galex/aggbug/1148863.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41801/" target="_blank">[新闻]《星际争霸2》新图</a>]]></description></item><item><title>LINQ(1): LINQ的设计目标和使用动机</title><link>http://www.cnblogs.com/galex/archive/2008/04/11/1147759.html</link><dc:creator>关小羽</dc:creator><author>关小羽</author><pubDate>Fri, 11 Apr 2008 00:53:00 GMT</pubDate><guid>http://www.cnblogs.com/galex/archive/2008/04/11/1147759.html</guid><wfw:comment>http://www.cnblogs.com/galex/comments/1147759.html</wfw:comment><comments>http://www.cnblogs.com/galex/archive/2008/04/11/1147759.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/galex/comments/commentRss/1147759.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/galex/services/trackbacks/1147759.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其实书上讲了一大堆的对比，说传统的数据和对象的访问方法怎么怎么不好，事实上目前大多数的程序员仍然采用以前的套路，只是在个人不同的风格习惯上，会用类似NHibernate之类的工具提高效率，关于这些估计大家都深有体会。但是，LINQ究竟有什么好，我们为什么要使用它？知道这个还是蛮重要的。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;书上粗略提了两点：整合使用多重数据类型和数据源，还有就是强类型支持。前者为跨数据源提供了统一的查询语法和数据处理模型，后者则为SQL语句的编译时检查和智能感知的增强提供基础。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINQ这个东东并不是一天建成的，它是从MS Research好几年的若干项目演化合并而成。最开始就是C-Omega项目，它主要作为数据类型扩展增强C#对XML和数据库之间的操作；接着是ObjectSpaces，它最初就是一套数据访问的API，使数据对象化，实现对象内数据查询功能，不过这个项目由于WinFS的延迟而夭折；最后是Xquery的实现，这部分功能在.NET FX 2.0的第一个预览版出现，但最终却放弃了，因为它完全又是一种附加语言。然后MS就停止了这三个项目，并在PDC 2005上公布了LINQ项目的开始。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;既然LINQ主要整合的是内存对象、关系数据库和XML的数据访问，自然可以分成LINQ to Objects，LINQ to SQL 和 LINQ to XML了。下一步就是入门的代码，期待中。一上午的会，累呀。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<img src ="http://www.cnblogs.com/galex/aggbug/1147759.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41801/" target="_blank">[新闻]《星际争霸2》新图</a>]]></description></item><item><title>开博第一篇，报告一哈状态</title><link>http://www.cnblogs.com/galex/archive/2008/04/10/1147060.html</link><dc:creator>关小羽</dc:creator><author>关小羽</author><pubDate>Thu, 10 Apr 2008 08:56:00 GMT</pubDate><guid>http://www.cnblogs.com/galex/archive/2008/04/10/1147060.html</guid><wfw:comment>http://www.cnblogs.com/galex/comments/1147060.html</wfw:comment><comments>http://www.cnblogs.com/galex/archive/2008/04/10/1147060.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/galex/comments/commentRss/1147060.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/galex/services/trackbacks/1147060.html</trackback:ping><description><![CDATA[<p>　　<br />
　　最近再看这本书，翻译就算了，实在忙，而且懂这个的太多，我就不班门弄斧了。偶尔我还是会把值得注意的东西摘出来，大家一起研究哈。<br />
<br />
　　<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/galex/LINQ_IN_ACTION.PNG" border="0" /></p>
<img src ="http://www.cnblogs.com/galex/aggbug/1147060.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41800/" target="_blank">[新闻]Google放出Android开发路线图</a>]]></description></item></channel></rss>