0

これをデータレイヤーで使用しています

public static IQueryable<Permission> ListAll()
{
    using (InventorySystemEntities context = new InventorySystemEntities(new ConfigurationManager().ConnectionString))
    {
        IQueryable<Permission> result = context.Permissions;
        return result;
    }
}

結果変数内にすべての行を配置する必要があります。ただし、このようなことをすると、コンテキストが破棄されます..

permissionList = PermissionModel.ListAll();
chkListGeneral.DataSource = permissionList.Where(p => p.Parent == "General");

コンテキストなしで IQueryable をフィルタリングする方法はありますか?

4

1 に答える 1

0

接続は、それをラップするコンテキストの間のみアクセス可能です。メソッドが を返すIQueryableため、フィルターは DB クエリに「変換」しようとしていますが、基になるクエリ プロバイダーは存在しません。コンテキストがまだ存在する間に where 条件を指定するか、(変数を呼び出すなどToList()してresult) 熱心な読み込みを強制し、メモリ内の結果を返しIEnumerableてフィルター処理する必要があります。

于 2013-07-02T19:51:14.513 に答える