C# LINQ-其中的条件-“;如有其他",;案例
我有以下Linq查询。我想要的是,如果我搜索特定的C# LINQ-其中的条件-“;如有其他",;案例,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有以下Linq查询。我想要的是,如果我搜索特定的年,我应该得到该年的相应记录。否则只显示当年的记录。同样的方法searchtext也必须完成 public ActionResult Search(string searchtext, int? year) { string selyear = year.ToString(); string curyear = (DateTime.Now.Year).ToString
年
,我应该得到该年
的相应记录。否则只显示当年的记录。同样的方法searchtext
也必须完成
public ActionResult Search(string searchtext, int? year)
{
string selyear = year.ToString();
string curyear = (DateTime.Now.Year).ToString();
hdms = from t in db.HOLIDAY
where
(year == null || t.DOH.StartsWith(selyear)) &&
(searchtext == "" || t.HOLIDAY_NAME == searchtext)
select new HOLIDAYDETAILS
{
DOH = t.DOH,
};
....
}
我还想满足这个如果(year==null),那么t.DOH.StartsWith(curyear)
和
if(searchtext==“”)那么t.HOLIDAY\u NAME!=“星期日”和t.HOLIDAY_NAME!=“星期六”
此外,如果两者同时为null,则应同时满足这两个条件
我怎样才能在上面的where条款中给出这个呢 如果检查年份是否为空是您的问题,那么您可以这样做-
public ActionResult Search(int? year)
{
string selyear = year.ToString();
string queryyear = (string.IsNullOrEmpty(selyear)) // checking for null
? (DateTime.Now.Year).ToString() // current year
: selyear; // year in query
hdms = from t in db.HOLIDAY
join t1 in db.EMPLOYEE on t.UPDATED_BY equals t1.EMP_CODE
where
t.DOH.StartsWith(queryyear) // comparing queryyear
orderby
t.DOH
select new HOLIDAYDETAILS
{
DOH = t.DOH,
};
....
}
希望这对你有用…如果检查年份是否为空是你的问题,那么你可以这样做-
public ActionResult Search(int? year)
{
string selyear = year.ToString();
string queryyear = (string.IsNullOrEmpty(selyear)) // checking for null
? (DateTime.Now.Year).ToString() // current year
: selyear; // year in query
hdms = from t in db.HOLIDAY
join t1 in db.EMPLOYEE on t.UPDATED_BY equals t1.EMP_CODE
where
t.DOH.StartsWith(queryyear) // comparing queryyear
orderby
t.DOH
select new HOLIDAYDETAILS
{
DOH = t.DOH,
};
....
}
public ActionResult Search(int? year)
{
string curyear = (DateTime.Now.Year).ToString();
string selyear = year!=null? year.ToString() : curyear;
var query = from t in db.HOLIDAY
join t1 in db.EMPLOYEE on t.UPDATED_BY equals t1.EMP_CODE
select new {t,t1};
query = query.Where(o=>o.t.DOH.StartsWith(selyear));
if (searchtext == "")
{
query = query.Where(o=>o.t.HOLIDAY_NAME != "Sunday" && o.t.HOLIDAY_NAME != "Saturday");
}
hdms = query.OrderBy(o=>o.t.DOH).Select(o=> new HOLIDAYDETAILS
{
DOH = o.t.DOH,
});
....
}
希望这对你有用…以上代码对我有用。你能给我一下
searchtext
的条件吗?@LimnaD'silva你可以根据你的条件一步一步地创建查询。你能给我一下searchtext
的条件吗?@LimnaD'silva你可以根据你的条件一步一步地创建查询
public ActionResult Search(int? year)
{
string curyear = (DateTime.Now.Year).ToString();
string selyear = year!=null? year.ToString() : curyear;
var query = from t in db.HOLIDAY
join t1 in db.EMPLOYEE on t.UPDATED_BY equals t1.EMP_CODE
select new {t,t1};
query = query.Where(o=>o.t.DOH.StartsWith(selyear));
if (searchtext == "")
{
query = query.Where(o=>o.t.HOLIDAY_NAME != "Sunday" && o.t.HOLIDAY_NAME != "Saturday");
}
hdms = query.OrderBy(o=>o.t.DOH).Select(o=> new HOLIDAYDETAILS
{
DOH = o.t.DOH,
});
....
}