0

I am trying to use Dynamic Linq library in my code, but it gives this error

'UserId' could not be resolved in the current scope or context. Make sure that all referenced variables are in scope, that required schemas are loaded, and that namespaces are referenced correctly. Near simple identifier, line 6, column 1

and here is my code

 TestDB db = new TestDB();
        string filter = "UserId == 15";
        //var searchResult =
        GridView1.DataSource = from x in db.SearchSummaries.Where(filter)
                               select x;
        GridView1.DataBind();
4

2 に答える 2

2

動的Linqにはあまり詳しくありませんが、エラーメッセージから:

'UserId'は、現在のスコープまたはコンテキストで解決できませんでした。参照されるすべての変数がスコープ内にあること、必要なスキーマがロードされていること、および名前空間が正しく参照されていることを確認してください。単純な識別子の近く、6行目、1列目

これを試してください:

1.)列UserIdは文字列ではなく整数ですか?使用する必要があるMabye:

    string filter = "UserId='15'";

2.)2番目の引数としてフィルターパラメーターを渡してみてください。

    GridView1.DataSource = db.SearchSummaries.Where("UserId = @0", 15); 

3.)「通常の」Linqクエリを実行できるかどうかはわかりませんが、実行できる場合は、次のことを試してください。

    GridView1.DataSource = db.SearchSummaries.Where(search => search.UserId == 15);                               
    GridView1.DataBind();
于 2012-09-27T17:58:44.937 に答える
1

これを試して:

TestDB db = new TestDB();
    string filter = "xi => xi.UserId == 15";
    //var searchResult =
    GridView1.DataSource = from x in db.SearchSummaries.Where(filter)
                           select x;
    GridView1.DataBind();

またはこれ:

TestDB db = new TestDB();
    string filter = "UserId=15";
    //var searchResult =
    GridView1.DataSource = from x in db.SearchSummaries.Where(filter)
                           select x;
    GridView1.DataBind();

編集:これは動的な linq ではないことを認識しています...しかし、データ構造が正しい限り、問題なく機能するはずです。それを投稿していただけますか?

于 2012-09-27T17:20:06.747 に答える