Ich versuche, die Dynamic Linq-Bibliothek in meinem Code zu verwenden, aber es gibt diesen Fehler
'UserId' konnte im aktuellen Bereich oder Kontext nicht aufgelöst werden. Stellen Sie sicher, dass alle referenzierten Variablen im Gültigkeitsbereich sind, dass die erforderlichen Schemas geladen sind und dass die Namespaces korrekt referenziert sind. Nahezu einfache Kennung, Zeile 6, Spalte 1
und hier ist mein Code
TestDB db = new TestDB();
string filter = "UserId == 15";
//var searchResult =
GridView1.DataSource = from x in db.SearchSummaries.Where(filter)
select x;
GridView1.DataBind();
Nicht so vertraut mit dynamischem Linq, aber aus Ihrer Fehlermeldung:
'UserId' konnte im aktuellen Bereich oder Kontext nicht aufgelöst werden. Stellen Sie sicher, dass alle referenzierten Variablen im Gültigkeitsbereich sind, dass die erforderlichen Schemas geladen sind und dass die Namespaces korrekt referenziert sind. Nahezu einfache Kennung, Zeile 6, Spalte 1
Bitte versuchen Sie dies:
1.) Ist die Spalte UserId eine Ganzzahl und keine Zeichenfolge? Mabye müssen Sie verwenden:
string filter = "UserId='15'";
2.) Versuchen Sie, den Filterparameter als zweites Argument zu übergeben:
GridView1.DataSource = db.SearchSummaries.Where("UserId = @0", 15);
3.) Ich weiß nicht, ob Sie "normale" Linq-Abfragen ausführen können, aber wenn ja, versuchen Sie:
GridView1.DataSource = db.SearchSummaries.Where(search => search.UserId == 15);
GridView1.DataBind();
Versuche dies:
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();
Oder dieses:
TestDB db = new TestDB();
string filter = "UserId=15";
//var searchResult =
GridView1.DataSource = from x in db.SearchSummaries.Where(filter)
select x;
GridView1.DataBind();
EDIT: Mir ist klar, dass dies keine dynamische Linq ist ... aber es sollte funktionieren, unabhängig davon, solange Ihre Datenstruktur korrekt ist. Könntest du das posten?