2

vwProposedMigrations の DeptCode が、ユーザーが管理を許可されているdeptsのリストにある項目 (vwProposedMigrations) のリストを返そうとしています。

結果には、departmentCode 文字列のリストが含まれます。これらは、以前の 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.List1[System.String]' の値は、サポートされているタイプではありません。

ObservableCollectionと を使用してstring[]部門コードのリストを保持しようとしましたが、同じ問題が発生します。Containsを使用する多くの例を見てきましたが、これらは最初のクエリを制限するのではなく、ロードされたデータに対して動作します。

vwProposedMigrations の結果セットは約 38,000 行あるため、結果セット全体を読み込まないようにしています。そのため、クエリをユーザーが関心のある行のみに制限することが目標です。

ありがとうミック

4

2 に答える 2

0

これをチェックして:

  var result = (from r in wtps.Schedule_Owner_DeptCode_Mappings select r.DeptCode);
  var data = wtps.GetVwProposedMigrationsQuery().Where(x=>result.Contains(x.DepartmentCode));
于 2013-07-10T08:13:00.613 に答える
0

これをチェックしてください

var data = wtps.GetVwProposedMIgrationsQuery().Where(x=>result.Any(z=>z.DepartmentCode == x.DepartmentCode))
于 2013-07-10T08:29:20.983 に答える