Chr*_*ris 3 c# linq entity-framework
我想在其子项之一中搜索搜索词存在的项目
例如,我有一个带设置的设备,我想要一个包含DeviceSetting Id=1和的所有设备的列表value.Contains("test").我正在使用LINQ to SQL,所以如果可以做任何事情来保持这个快速(并避免投影到POCO)那将是伟大的
我该如何实现这一目标?
Device
{
List<DeviceSetting> Settings { get; set; }
}
DeviceSetting
{
int Id;
string value;
}
var devices = new List<Device>(); // populated from EF
var search = "test";
var results = devices.Where(d => d.Settings.Contains(searchTerm));
Run Code Online (Sandbox Code Playgroud)
使用Enumerable.Any检查是否有任何设备设置符合某些条件:
var results =
devices.Where(d => d.Settings.Any(s => s.value.Contains(searchTerm)));
Run Code Online (Sandbox Code Playgroud)
如果您还需要检查Id,请将此条件添加到Any的谓词:
d.Settings.Any(s => s.Id == 1 && s.value.Contains(searchTerm))
Run Code Online (Sandbox Code Playgroud)
注意:如果不将设备保存到列表中,则可以在服务器端执行此过滤.
| 归档时间: |
|
| 查看次数: |
1550 次 |
| 最近记录: |