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?