使用Contains作为';在';Silverlight中实体框架中的LINQ
本文关键字:实体 框架 LINQ Contains 作为 使用 Silverlight | 更新日期: 2023-09-27 18:14:59
我正试图返回一个项目列表(vwProposedMigrations(,其中vwPropisedMigrations的部门代码为IN用户有权管理的部门列表。
result包含部门代码字符串的列表。这些已通过早期的entityQuery加载并正确返回。
var result = (from r in wtps.Schedule_Owner_DeptCode_Mappings select r.DeptCode).ToList();
var data = wtps.GetVwProposedMigrationsQuery().Where(x=>result.Contains(x.DepartmentCode));
LoadOperation dataLoad = wtps.Load<vwProposedMigration>(data);
dataLoad.Completed += new EventHandler(LoadvwProposedMigrationsOperation_Completed);
但是收到这个错误:
不支持类型为"System.Collections.Generic.List
1[System.String]' cannot be serialized as part of the query. 'System.Collections.Generic.List
1[System.String]"的值类型
我曾尝试使用ObservableCollection
和string[]
来保存部门代码列表,但出现了相同的问题。我见过很多使用Contains的例子,但这些例子在数据加载后对其进行操作,而不是限制初始查询。
我试图避免加载vwProposedMigrations的整个结果集,因为它大约有38000行,所以我的目标是将查询限制在用户感兴趣的行。
谢谢米克
请检查此
var data = wtps.GetVwProposedMIgrationsQuery().Where(x=>result.Any(z=>z.DepartmentCode == x.DepartmentCode))
检查此项:
var result = (from r in wtps.Schedule_Owner_DeptCode_Mappings select r.DeptCode);
var data = wtps.GetVwProposedMigrationsQuery().Where(x=>result.Contains(x.DepartmentCode));