Linq IQueryable переменные - PullRequest
       17

Linq IQueryable переменные

0 голосов
/ 26 августа 2009

Привет, у меня есть функция, которая должна возвращать мне строку, но она возвращает мне выражение SQL, которое я использую в базе данных что я сделал не так

 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" /> 

Может кто-нибудь помочь мне, пожалуйста

Ответы [ 3 ]

1 голос
/ 26 августа 2009

Я отсортировал это, используя

var xml = db.JobImports.Single(x => x.Processed == false);
return xml.Content;
0 голосов
/ 26 августа 2009

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

return xml.ToList();

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

0 голосов
/ 26 августа 2009
  1. Ваш метод относится к типу IQueryable
  2. Вы не должны напрямую return xml; Преобразуйте его в return xml.ToList() или в любое другое значение (в вашем случае xml.ToString()
  3. Измените тип вашего метода на String

Если вы прямо вернете xml, он будет иметь тип IQueryable

...