none
Linq如何執行多條件查詢 RRS feed

  • 問題

  • 小弟K了幾天的書,對Linq還是有許多地方不解!

     

    想請教各位先進都是用什麼方式執行多條件查詢,針對多條件查詢目前我是用這樣的方式

    //enumParent 由另一個Function取得, 此處為解說方便直接建立instance

    IEnumerable<string> enumParent = IEnumerable<string>() { "David","Tom","Jack","Steve"}; 

    //再去判斷使用者的ParentName是否包含在 enumParent裡

    IEnumerable<string> enumNameList = from user in MemberInfo
                                                   where enumParent.Contains( user.ParentName)
                                                   select user;

    問題:

    1. SQL語法使用 Select * from MemberInfo where ParentName="David" or ParentName="Tome" or ParentName="Jack" or ParentName ="Steve"; 直覺是一個句子完成,小弟想請教的是,用Linq的語法和SQL的語法,以這一例子,是那用一種效能比較好? 還是各位先進有更好的建議!

     

     

    2008年6月19日 下午 01:53

解答

  • IEnumerable<string> enumParent = IEnumerable<string>() { "David","Tom","Jack","Steve"}; 

    //再去判斷使用者的ParentName是否包含在 enumParent裡

    IEnumerable<string> enumNameList = from user in MemberInfo

                                                   form parent in enumParent 
                                                   where user.Name=parent
                                                   select user;

     

    1.SQL Select *.................. 在SQL Server 裡執行應該比較好.

    2.SQL Select *................... 這個方式是你已經知道Parent 的參數數量,如果不知還是你這種LINQ方法比較好.

    3.SQL Select *...................在APP執行應該也比較好,但經過我在系統測試,由LINQ To SQL 所產生的效率會比你拼出的SQL Statement 高出好幾成,我曾去看它轉譯出的Statement 大部分都比你拼的複雜多但效果卻好(MS 真的保留一手),所以最後我都交給LINQ TO SQL 去處理.

    2008年6月20日 上午 12:21