2009-08-26 14 views
0

Hallo, ich habe eine Funktion, die mir einen String zurückgeben sollte, aber was tut, ist mir bringt den SQL-Ausdruck zurück, die ich auf der Datenbank bin mit , was ich falsch gemacht habenLinq IQueryable Variablen

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; 

    } 

diese das Codebeispiel

dies ist das, was sollte ich

<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" /> 
werden immer wieder

kann mir jemand bitte helfen

Antwort

0
  1. Ihre Methode ist vom Typ IQueryable
  2. Sie sollten nicht direkt return xml; es konvertieren zu return xml.ToList() oder was auch immer Sie es (in Ihrem Fall sein xml.ToString()
  3. ändern Methode Typ String

Wenn Sie direkt xml zurückkehren wird es vom Typ sein IQueryable

+0

ich versucht habe dieses und im noch den Ausdruck immer an mich comming zurück – kevinw

+0

statt neue {x.Content} auszuwählen; versuchen Sie XElement auszuwählen. Ich bin mir sicher, dass Sie das erwarten werden –

0

Möglicherweise müssen Sie die Ausführung der Abfrage erzwingen, bevor Sie das Ergebnis z. Dies ist

return xml.ToList(); 

notwendig, da Ihre LINQ-Abfrage lazily ausgeführt wird, das heißt nicht, bis Sie tatsächlich das Ergebnis zugreifen: dies wie. Dein Code tut dies derzeit nicht.

1

ich habe es sortiert, indem Sie diese

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