@HeyJude 感谢您的努力,但我仍然无法正常工作。它以某种方式出错了,现在我什至无法获取仅给出 ProcessId 编号的正确行..
让我给你更详细的描述我的设置。在数据库中有一个包含“NewValue”列的表,我使用此列来存储某个对象的当前(用于在表中创建行的时间)表示的 json 字符串,例如对象Process。因此,该列存储例如{"ProcessId":904,"ProcessLength":1000}的字符串。为了从 db 中获取这些数据,我创建了表记录的集合:var items = (from l in db.JDE_Logs
join u in db.JDE_Users on l.UserId equals u.UserId
join t in db.JDE_Tenants on l.TenantId equals t.TenantId
where l.TenantId == tenants.FirstOrDefault().TenantId && l.Timestamp >= dFrom && l.Timestamp <= dTo
orderby l.Timestamp descending
select new //ExtLog
{
LogId = l.LogId,
TimeStamp = l.Timestamp,
TenantId = t.TenantId,
TenantName = t.TenantName,
UserId = l.UserId,
UserName = u.Name + " " + u.Surname,
Description = l.Description,
OldValue = l.OldValue,
NewValue = l.NewValue
});
。然后我查询它以查找给定 ProcessId 编号的匹配行,例如query = "@NewValue.Contains(\"904,)\")";
items = items.Where(query);
这应该取回 NewValue 列包含查询字符串的所有记录,但这不起作用。它编译并“工作”,但没有获取数据或仅获取 904 稍后出现在字符串中的那些记录。
查询字符串应该是什么样子来获取包含的所有记录"ProcessId":904
?