2009-08-26 3 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

Я попытался это и им все еще получает выражение, поступающее обратно ко мне – kevinw

+0

вместо выбора новой {x.Content}; попробуйте выбрать XElement .. Я уверен, что вы выберете, что вы ожидаете –

0

Возможно, вам нужно принудительно выполнить запрос, прежде чем возвращать результат, например. как это:

return xml.ToList(); 

Это необходимо, поскольку ваш запрос LINQ выполняется лениво, то есть пока вы на самом деле получить доступ к результату. В настоящее время ваш код этого не делает.

1

я отсортировал его с помощью этого

var xml = db.JobImports.Single(x => x.Processed == false); 
return xml.Content; 
Смежные вопросы