我正在尝试在C#中使用LINQ来执行SQL查询,该查询根据复杂查询选择多个记录。
我有一个Person类列表,其中包含我想要搜索的以下成员: 名字和城市。
通常在SQL中,我会遍历此List并生成以下where语句
Where (Name="Name1" and City="City1") or (Name="Name2" and City="City2") or ...
我想知道如何使用LINQ实现类似的结果。
我可以使用多个查询来执行此操作,但由于网络的延迟以及让数据库自我优化,我希望使用较少的查询。该列表随时将包含不超过100个项目。
修改
如下面的评论所述,Person类只是一个尝试保持简单的例子。我会尝试详细说明我想要完成的工作,看看你是否可以帮助我或提供更好的解决方案。
我有2个感兴趣的数据库表
组件包含8个字段和一个ComponentID。每个组件都应该是唯一的。
展示位置包含一个字段列表以及一个返回组件的FK。将有几个展示位置引用数据库中的一个组件记录。
在C#中,我想使用DataContext将一个事务添加到数据库中。我将向数据库添加最多1000个Placement行。如果组件不存在,我将不得不创建它。如果确实存在,我需要获取其ComponentID,以便我可以将Placement链接到Component。
我最近尝试过以下代码: placementGroup有几个成员,其中只需要8个来验证唯一性。应该注意的是,下面列出的8个成员在列表中存储的所有对象之间是唯一的。
List<DBProductionComponent> existingComponents = context.DBProductionComponents.Where(dbc => placementGroup.Any(p =>
p.ComponentName == dbc.ComponentName &&
p.LotNumber == dbc.LotNumber &&
p.Manufacturer == dbc.Manufacturer &&
p.Package == dbc.PackageName &&
p.PartNumber == dbc.PartNumber &&
p.Supplier == dbc.Supplier &&
p.SupplierPartNumber == dbc.SupplierPartNumber &&
p.Value == dbc.Value
)).ToList();
但是得到以下错误:&#34;除了Contains运算符之外,本地序列不能用于查询的LINQ to SQL实现。