我正在尝试在我的代码中使用Dynamic Linq库,但它会出现此错误
无法在当前范围或上下文中解析“UserId”。确保所有引用的变量都在范围内,加载了所需的模式,并正确引用了名称空间。近简单标识符,第6行,第1列
这是我的代码
TestDB db = new TestDB();
string filter = "UserId == 15";
//var searchResult =
GridView1.DataSource = from x in db.SearchSummaries.Where(filter)
select x;
GridView1.DataBind();
答案 0 :(得分:2)
不熟悉动态Linq,但是从错误消息中可以看出:
无法在当前范围或上下文中解析“UserId”。使 确保所有引用的变量都在范围内,这需要模式 已加载,并且正确引用了名称空间。近乎简单 标识符,第6行,第1列
请试试这个:
1。)UserId列是整数而不是字符串吗? Mabye你需要使用:
string filter = "UserId='15'";
2。)尝试将filter参数作为第二个参数传递:
GridView1.DataSource = db.SearchSummaries.Where("UserId = @0", 15);
3)。 我不知道你是否能够运行“常规”Linq查询,但如果你是,请尝试:
GridView1.DataSource = db.SearchSummaries.Where(search => search.UserId == 15);
GridView1.DataBind();
答案 1 :(得分: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 ...但只要你的数据结构正确,它就应该工作。你可以发帖吗?