我有一个表"组件",其中包含"AssemblyGuid"和"PartGuid"列。我有一个组件列表"组件指南">
var componentsGuids = _input.Select(x =>
new Component
{
AssemblyGuid = x.AssemblyGuid,
PartGuid = x.DetailGuid,
}).ToList();
如何使 Linq To Sql 查询通过组合键加载"组件 Guids"列表中的所有组件条目?
var componentsDb = Context.Components//.ToList() an error occurs here
.Where(
x => componentsGuids.Any(
y => y.AssemblyGuid == x.AssemblyGuid
&& y.PartGuid == x.PartGuid));
也许这有助于您找到解决方案。我不确定代码是否开箱即用,但我希望它能清楚地说明这个想法。在列表中连接两个 GUID,并使用 Contains
检查是否存在串联的 GUID 对。
这样的事情应该有效:
var componentsGuidsConcat = componentsGuid
.Select(p => AssemblyGuid.ToString() + PartGuid.ToString())
.ToList();
var componentsDb = Context.Components
.Where(p => componentsGuidsConcat.Contains(
p.AssemblyGuid.ToString() + p.PartGuid.ToString())
);