我正在尝试在我的代码中使用动态 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();
不太熟悉动态 Linq,但来自您的错误消息:
无法在当前范围或上下文中解析"UserId"。 做 确保所有引用的变量都在范围内,所需的架构 已加载,并且正确引用命名空间。近乎简单 标识符,第 6 行,第 1 列
请尝试以下操作:
1.) 用户 ID 列是整数还是字符串?马拜你需要使用:
string filter = "UserId='15'";
2.) 尝试传入过滤器参数作为第二个参数:
GridView1.DataSource = db.SearchSummaries.Where("UserId = @0", 15);
3.) 我不知道您是否能够运行"常规"Linq 查询,但如果可以,请尝试:
GridView1.DataSource = db.SearchSummaries.Where(search => search.UserId == 15);
GridView1.DataBind();
试试这个:
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...但只要您的数据结构正确,它都应该有效。你能发布吗?