我有一个包含事务的数据库表。在其中一个字段中有一条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>
答案 0 :(得分:1)
是的,LINQ很容易实现:
var matchList = from t in transactions
where XDocument.Load (new StringReader (t.Message))
.Descendants ("employee")
.Count (node => node.Value == employeeNr) > 0
select t;
答案 1 :(得分:0)
简单方法:
List<YourRecord> GetRecords(string EmployeeId)
{
return TheTable.where(r => r.Message.Contains("<employee>" + empId + "</employee>")).ToList();
}