2009-08-26 66 views
0

嗨,我有一個應該返回我一個字符串,但功能是什麼做的是把我回來,我現在用的數據庫 我做了什麼錯在SQL表達式LINQ的IQueryable的變量

public static IQueryable XMLtoProcess(string strConnection) 
    { 
     Datalayer.HameserveDataContext db = new HameserveDataContext(strConnection); 

     var xml = from x in db.JobImports 
        where x.Processed == false 
        select new { x.Content }; 
     return xml; 

    } 

這在代碼示例

這是我應該回去了

<PMZEDITRI TRI_TXNNO="11127" TRI_TXNSEQ="1" TRI_CODE="600" TRI_SUBTYPE="1" TRI_STATUS="Busy" TRI_CRDATE="2008-02-25T00:00:00.0000000-00:00" TRI_CRTIME="54540" TRI_PRTIME="0" TRI_BATCH="" TRI_REF="" TRI_CPY="main" C1="DEPL" C2="007311856/001" C3="14:55" C4="CUB2201" C5="MR WILLIAM HOGG" C6="CS12085393" C7="CS" C8="Blocked drain" C9="Scheme: CIS Home Rescue edi tests" C10="MR WILLIAM HOGG" C11="74 CROMARTY" C12="OUSTON" C13="CHESTER LE STREET" C14="COUNTY DURHAM" C15="" C16="DH2 1JY" C17="" C18="" C19="" C20="" C21="CIS" C22="0018586965 ||" C23="BD" C24="W/DE/BD" C25="EX-DIRECTORY" C26="" C27="/" C28="CIS Home Rescue" C29="CIS Home Rescue Plus Insd" C30="Homeserve Claims Management Ltd|Upon successful completion of this repair the contractor must submit an itemised and costed Homeserve Claims Management Ltd Job Sheet." N1="79.9000" N2="68.0000" N3="11.9000" N4="0" N5="0" N6="0" D1="2008-02-25T00:00:00.0000000-00:00" T2="EX-DIRECTORY" T4="Blocked drain" TRI_SYSID="9" TRI_RETRY="3" TRI_RETRYTIME="0" /> 

誰能幫助我,請

回答

0
  1. 你的方法類型IQueryable
  2. 的你不應該直接return xml; 轉換爲return xml.ToList()或任何你希望它是(在你的情況xml.ToString()
  3. 改變你的方法類型String

如果您直接回復xml它將是IQueryable

+0

我已經試過這和IM仍然得到正在添加表情還給我 – kevinw 2009-08-26 09:25:38

+0

而不是選擇新{} x.Content的排序是;嘗試選擇XElement ..我相信你會滿足你的期望 – 2009-08-26 10:43:26

0

也許你需要在返回結果之前強制執行查詢,例如像這樣:

return xml.ToList(); 

這是必要的,因爲您的LINQ查詢是懶惰地執行的,即直到您實際訪問結果爲止。你的代碼目前不這樣做。

1

我已經使用這個

var xml = db.JobImports.Single(x => x.Processed == false); 
return xml.Content;