[英]Linq Sub Query is not working
這是我的子查詢代碼代碼 。
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_User_Id
與要從User_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 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 })
采用
select m.User_Id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.