如何在Linq中使用会话变量

时间:2016-04-12 06:18:42

标签: c# linq

如何在Linq查询中获取Session["UserId"]

 var result = (from c in db.UserMaster
                      where c.UserID == Session["vUSerID"].ToString() 
                      select C ).ToList();

但是当我执行它时给出了如下错误

  

LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为商店表达式。

请指导我如何使用ToString()

2 个答案:

答案 0 :(得分:4)

您需要在之前实现值,然后将其发送出去以转换为SQL:

var userId = Session["vUSerID"].ToString();
var result = (from c in db.UserMaster
                  where c.UserID == userId 
                  select C ).ToList();

答案 1 :(得分:0)

或者,您可以尝试首先将实体引入内存,然后应用条件来获取筛选结果,但由于潜在的性能问题,不推荐使用该条件。

var result = db.UserMaster.Select(x => x).ToList().Where(x => x.UserId == Session["vUSerID"].ToString()).ToList();