Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq子查询不工作_C#_.net_Linq - Fatal编程技术网

C# Linq子查询不工作

C# Linq子查询不工作,c#,.net,linq,C#,.net,Linq,这是我的子查询代码的代码 var lis = from t in de.TimeSheetUserStatus where t.Leader_User_Id == Convert.ToInt32( (from m in de.User_Details where m.Name.Contains(Session["user"].ToString()) select new { m.User_Id }).FirstOrDefau

这是我的子查询代码的代码

var lis = 
    from t in de.TimeSheetUserStatus 
    where t.Leader_User_Id == Convert.ToInt32(
        (from m in de.User_Details 
        where m.Name.Contains(Session["user"].ToString()) 
        select new { m.User_Id }).FirstOrDefault()) 
    select t;

grdTimeSheet.DataSource = lis.ToList();
grdTimeSheet.DataBind();
解释

我有
TimeSheetUserStatus
视图,我正在将
Leader\u User\u Id
与从
User\u Details
表中获取数据的子查询进行比较。在编码时没有错误,但是当我执行此代码时,我得到一个运行时错误,如下所示


Linq
不知道如何将方法
convert.Toint32()
转换为
Sql
查询

您需要将代码重构为如下内容:

var userId = de.User_Details
        .Where(m => m.Name.Contains(Session["user"].ToString()))
        .Select(m => new{ m.User_Id })
        .FirstOrDefault();

var lis = Enumerable.Empty<TimeSheetUserStatus>();
if(userId != null)
{
    lis = de.TimeSheetUserStatus
        .Where(t => t.Leader_User_Id == userId.User_Id);
}

grdTimeSheet.DataSource = lis.ToList();
grdTimeSheet.DataBind();
var userId=de.User\u详细信息
.Where(m=>m.Name.Contains(会话[“用户”].ToString())
.Select(m=>new{m.User_Id})
.FirstOrDefault();
var lis=Enumerable.Empty();
if(userId!=null)
{
lis=de.TimeSheetUserStatus
其中(t=>t.Leader\u User\u Id==userId.User\u Id);
}
grdTimeSheet.DataSource=lis.ToList();
grdTimeSheet.DataBind();

Linq
不知道如何将方法
convert.Toint32()
转换为
Sql
查询

您需要将代码重构为如下内容:

var userId = de.User_Details
        .Where(m => m.Name.Contains(Session["user"].ToString()))
        .Select(m => new{ m.User_Id })
        .FirstOrDefault();

var lis = Enumerable.Empty<TimeSheetUserStatus>();
if(userId != null)
{
    lis = de.TimeSheetUserStatus
        .Where(t => t.Leader_User_Id == userId.User_Id);
}

grdTimeSheet.DataSource = lis.ToList();
grdTimeSheet.DataBind();
var userId=de.User\u详细信息
.Where(m=>m.Name.Contains(会话[“用户”].ToString())
.Select(m=>new{m.User_Id})
.FirstOrDefault();
var lis=Enumerable.Empty();
if(userId!=null)
{
lis=de.TimeSheetUserStatus
其中(t=>t.Leader\u User\u Id==userId.User\u Id);
}
grdTimeSheet.DataSource=lis.ToList();
grdTimeSheet.DataBind();
试试这个

        var lis = from t in TimeSheetUserStatus
                  where t.Leader_User_Id == Convert.ToInt32(
                  (from m in User_Details
                   where m.Name.Contains(uName)
                   select  m.User_Id )
                        .FirstOrDefault())
                  select t;
不知道

select new { m.User_Id })
使用

试试这个

        var lis = from t in TimeSheetUserStatus
                  where t.Leader_User_Id == Convert.ToInt32(
                  (from m in User_Details
                   where m.Name.Contains(uName)
                   select  m.User_Id )
                        .FirstOrDefault())
                  select t;
不知道

select new { m.User_Id })
使用


只有会话[“用户”]有值“hitesh”我正在从另一页获取值。您使用的是哪个版本的EF?只有会话[“用户”]有值“hitesh”我正在从另一页获取值。您使用的是哪个版本的EF?