2016-08-01 83 views
0

讓我們有一個十進制數組BOOK_NO[]。我有現有的查詢是這樣的:如何檢查十進制數組中的任何值是否存在於表的十進制字段中?

PrintOrderList = (
    from t1 in db.DIS_SET_PRINT_REQ 
    join t2 in db.RND_BOOK on t1.F_BOOK_NO equals t2.BOOK_NO into first_joined 
    where (t1.IS_EXIST == 1 && 
     t1.F_COMPANY_NO == Company_No && 
     @book_no.(t1.F_BOOK_NO)) 
    from dept_data in first_joined.DefaultIfEmpty() 
    select new DIS_SET_PRINT_REQ_R_SINGLE_MODEL 
    { 
     BOOK_NO = dept_data.BOOK_NO, 
     BOOK_NAME = dept_data.BOOK_NAME, 
     EDITION_NAME = dept_data.RND_SET_BOOK_EDITION.BOOK_EDITION_NAME, 
     FISCAL_YEAR = t1.SNS_SET_FISCAL_YEAR.FISCAL_YEAR_NAME, 
     ACADEMIC_LEVEL = dept_data.RND_SET_BOOK_ACA_LEVEL.BOOK_ACA_LEVEL_NAME, 
     PRINT_QUANTITY = t1.BOOK_QTY, 
     PRINT_REQ_NO = t1.PRINT_REQ_NO, 
     PRINT_SEQ = (db.DIS_SET_PRINT_REQ_DTL.Where(x => x.F_PRINT_REQ_NO == t1.PRINT_REQ_NO) 
              .Where(x => x.IS_EXIST == 1) 
              .OrderBy(x => x.PRINT_REQ_DTL_NO)), 
     FISCAL_YEAR_NO = t1.F_FISCAL_YEAR_NO, 
     EDITION_NO = t1.RND_BOOK.F_BOOK_EDITION_NO, 
     ACADEMIC_LEVEL_NO = dept_data.RND_SET_BOOK_ACA_LEVEL.BOOK_ACA_LEVEL_NO, 
     CATEGORY_NO = dept_data.F_BOOK_CATEGORY_NO 
    }).ToList(); 

在這裏,我需要把一個條件,BOOK_NO[]包含任何t1.F_BOOK_NO

+0

問題目前尚不清楚。你想確保每個項目't1'存在於'BOOK_NO []'?這意味着'PrintOrderList'中的所有記錄都是在'BOOK_NO []'中有匹配項的記錄? –

+0

是的,你知道了。 –

回答

1

使用.ContainsBOOK_NO[]來檢查t1.BOOK_NO是它

PrintOrderList = (
    from t1 in db.DIS_SET_PRINT_REQ 
    join t2 in db.RND_BOOK on t1.F_BOOK_NO equals t2.BOOK_NO into first_joined 
    where t1.IS_EXIST == 1 && 
     t1.F_COMPANY_NO == Company_No && 
     book_no.Contains(t1.F_BOOK_NO) 
    from dept_data in first_joined.DefaultIfEmpty() 
    select new DIS_SET_PRINT_REQ_R_SINGLE_MODEL 
    { 
     BOOK_NO = dept_data.BOOK_NO, 
     BOOK_NAME = dept_data.BOOK_NAME, 
     EDITION_NAME = dept_data.RND_SET_BOOK_EDITION.BOOK_EDITION_NAME, 
     FISCAL_YEAR = t1.SNS_SET_FISCAL_YEAR.FISCAL_YEAR_NAME, 
     ACADEMIC_LEVEL = dept_data.RND_SET_BOOK_ACA_LEVEL.BOOK_ACA_LEVEL_NAME, 
     PRINT_QUANTITY = t1.BOOK_QTY, 
     PRINT_REQ_NO = t1.PRINT_REQ_NO, 
     PRINT_SEQ = (db.DIS_SET_PRINT_REQ_DTL.Where(x => x.F_PRINT_REQ_NO == t1.PRINT_REQ_NO) 
              .Where(x => x.IS_EXIST == 1) 
              .OrderBy(x => x.PRINT_REQ_DTL_NO)), 
     FISCAL_YEAR_NO = t1.F_FISCAL_YEAR_NO, 
     EDITION_NO = t1.RND_BOOK.F_BOOK_EDITION_NO, 
     ACADEMIC_LEVEL_NO = dept_data.RND_SET_BOOK_ACA_LEVEL.BOOK_ACA_LEVEL_NO, 
     CATEGORY_NO = dept_data.F_BOOK_CATEGORY_NO 
    }).ToList(); 
+0

感謝您的回覆,但「包含」僅適用於字符串匹配。 –

+0

否:)包含的是Enumerable的擴展方法,可用於任何由「默認相等比較器」的TSource - 因此也適用於Decimal –

+0

@AkhterAlaminFarhan - 有幫助嗎? –

相關問題