Dyamic Linq .Net 4 错误'userid'无法在当前范围或 contex 中解决



我正在尝试在我的代码中使用动态 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...但只要您的数据结构正确,它都应该有效。你能发布吗?

最新更新