Saturday 9 June 2012

Linq 发音(link)~到底是什么?

自从毕业后,都在编写一些小小的系统,一起毕业的同学也不例外!
一些同学编写php,apx.net ,由于有时和同学会见面,见面时都会讨论到最近在公司编写什么系统,使用什么语言,工具,等。当中发现了很多人都混乱在威力强大的工具,例如VS IDE ,第三方库如Telerik等~这些威力强大的东东的出现是好或坏?软件业上尤其是在发商业软体的都会使用框架(Framework),许多刚毕业入软体业的同学都知道框架可以帮助快速达到目的,缺混乱在框架当中。为什么会发生这样的混乱?大多数都是因为在学校都没真真理解到低阶语言例如C,C++,因为高阶语言都是由低阶语言包装以方便程式开发人员不用顾虑太多底层的东西如记忆体方面等等。请别忘记多强大的高阶语言到最后还是会转到机器语言以跟机器沟通~所以高阶语言的出现是让开发人员加速开发时间,而避免考虑太多底层的运作。

linq是什么呢?才发现我朋友竟然会把linq ,ado.net,entity framework 概念给混乱了,
ado.net , entity framework(ORM) 其实只是资料库存取技術,linq 其实就是.net 高阶语言当中可以对物件用似sql 语法去对物件取得资料,别忘了c#( Everything is an object),例如说,entity return 回一个object 所以就可以使用linq 对物件取出需要的资料。
简单的linq例子:



using System;
using System.Linq;

class linqtest
{
    static void Main()
    {    //宣告一个阵列
 int[] arr = { 1, 2, 3, 6, 7, 8 };
 
 var elements = from element in arr
         orderby element descending
         where element > 2
         select element;
 
 foreach (var element in elements)
 {
     Console.Write(element);
     Console.Write(' ');
 }
 Console.WriteLine();
    }
}
 
然後再閱讀所需 LINQ 技術的文件: