2013-05-01 16 views
0

我有很多字段的表,我想只有個別領域,我與EF工作,我添加另一個表的查詢,如下所示WPF以及帶桌子的EF選擇部分包括

  var Test= ve.Folders.Include("Hosting") 
       .Where(a => a.Collateral!= true) 
       .AsEnumerable() 
       .Select(p => new 
       { 
        id = p.Folder_Id, 
        name = p.Full_Name, 
        add = p.Address, 
        date1 = p.Collateral_Date, 
        sName = p.Hosting._Name 
       }) 
       .ToArray(); 

但與字段(sName = p.Hosting._Name)是關聯的第二個表沒有任何值查詢不起作用 許多嘗試已嘗試但沒有結果(有趣的時候,我沒有問選擇一切正常)

在此先感謝您的幫助

+0

側面說明,。哪裏(A => a.Collat​​eral!=真)真的應該只。凡(A =>!a.Collat​​eral) – Jonesopolis 2013-05-01 18:36:44

+0

@Jonesy好,謝謝 – user1095549 2013-05-01 18:42:36

+0

用'SNAME = P嘗試.Hosting!= null?p.Hosting._Name:string.Empty' – Damith 2013-05-01 18:43:31

回答

2

需要注意的一件事是,在這種情況下,調用AsEnumerableSelect幾乎沒有什麼好處,因爲表中的所有數據仍然從數據庫中查詢(不僅僅是您指定的字段)。

如果您想避免這種情況,並只查詢這五個字段,您可以刪除AsEnumerable調用。這意味着Select將作爲SQL查詢的一部分執行。這也意味着Include是不必要的,因爲Select將查詢所有你想要的數據。

var Test= ve.Folders 
      .Where(a => a.Collateral!= true) 
      .Select(p => new 
      { 
       id = p.Folder_Id, 
       name = p.Full_Name, 
       add = p.Address, 
       date1 = p.Collateral_Date, 
       sName = p.Hosting._Name 
      }) 
      .ToArray();