2014-02-19 134 views
0

有人可以將下面的原始sql轉換爲linq嗎?將SQL(LEFT OUTER JOIN)轉換爲LinQ

_sql= " SELECT tbl_book.*, tbl_time.tt_scope, tbl_time.tt_time "+ 
     " FROM tbl_time "+ 
     " LEFT OUTER JOIN tbl_book ON tbl_time.tt_time = tbl_book.book_time "+ 
     " AND ([email protected]_id AND [email protected]_id "+ 
     " AND [email protected]_date)"; 
+1

只是一個提示:'LEFT OUTHER JOIN' ='LEFT JOIN' – guisantogui

+1

參見[如何:執行左邊外部連接(C#編程指南)](http://msdn.microsoft.com/en-us/library/bb397895.aspx) – rsenna

+0

[LINQ to SQL Left External Join](http://stackoverflow.com/問題/ 700523/linq-to-sql-left-outer-join) – jnovo

回答

0

如果

var ppt_id_param = "@ppt_id"; 
var fct_id_param = "@fct_id"; 
var book_date_param = "@book_date"; 

是我們的參數,可以和你的背景是這樣的:

TestEntities DBContext = new TestEntities(); 

您的LINQ查詢是這樣的:

var query = (from time in tbl_time 
      join book in tbl_book on time.tt_time equals book.book_time 
       into joinedList 
      from book in joinedList.DefaultIfEmpty() 
      where book == null ? 
       true : 
       (
         book.ppt_id == ppt_id_param && 
         book.fct_id == fct_id_param && 
         book.book_date == book_date_param && 
       ) 
      select new { 

       time.tt_scope, 
       time.tt_time 
       book 
      }) 
      .ToList(); 
+0

謝謝。這就是我要的。 – Taylern