Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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#_Linq_Linq To Sql - Fatal编程技术网

C# 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

我有以下Linq查询。我想要的是,如果我搜索特定的
,我应该得到该
的相应记录。否则只显示当年的记录。同样的方法
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,                               
           });
   ....
}