Поиск таблиц XML, поданных с использованием Linq, это можно сделать? - PullRequest
1 голос
/ 02 декабря 2009

У меня есть таблица базы данных с транзакциями. В одном из полей есть сообщение XML, тип поля - «xml». В этом XML есть сотрудник, поданный, и именно это поле мне нужно искать. Я хочу получить все строки, которые соответствуют номеру сотрудника, указанному во время выполнения. Возможно ли это сделать с помощью Linq?

Здесь показан пример XML из одной из строк таблицы транзакций. Поле называется «Сообщение». Мне нужно посмотреть на значение «employee» и вернуть строку, если она совпадает с тем, что было предоставлено пользователем.

<interface>
  <mac>1452345234</mac>
  <device>device1</device>
  <id>1234567</id>
  <terminal>
    <unit>1</unit>
    <trans>
      <event>A3</event>
      <employee>3333</employee>
      <time>2008-10-02T11:41:00.0000000+00:00</time>
    </trans>
  </terminal>
</interface>

Ответы [ 2 ]

1 голос
/ 02 декабря 2009

Да, это легко возможно с LINQ:

var matchList = from t in transactions
                where XDocument.Load (new StringReader (t.Message))
                               .Descendants ("employee")
                               .Count (node => node.Value == employeeNr) > 0
                select t;
0 голосов
/ 02 декабря 2009

Простой способ:

List<YourRecord> GetRecords(string EmployeeId)
{
    return TheTable.where(r => r.Message.Contains("<employee>" + empId + "</employee>")).ToList();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...