Linq clause where avec plusieurs conditions

cette méthode retourne la liste générique, mais il a de multiples condition pour obtenir de sélectionner.
Je suis juste écrit ce à l'aide de if - else if -else if.... donc, de nombreux si d'autre je veux dire
Est-il une façon plus simple de faire cela? Merci.

    public List<ProductReqNoDate> GetRequestsQuery(string departmant, int reqStateID, string firstDate, string lastDate)
    {
        var db = new requestsDBEntities();
        var listPrn = new List<ProductReqNoDate>();
        if (!string.IsNullOrEmpty(departmant))
        {
            return  (from r in db.requests
                       where r.departmant== departmant
                       select new ProductReqNoDate
                       {
                           departmant= r.departmant,
                           reqNo = r.reqNo ,
                           reqDate = r.reqDate ,
                           prdctName= stringCutter((from p in db.products where p.reqNo == r.reqNo select p.prdctName).FirstOrDefault())
                       }).ToList();

        }
        if (!string.IsNullOrEmpty(firstDate) && !string.IsNullOrEmpty(lastDate))
        {
            DateTime dtfirstDate = Convert.ToDateTime(firstDate);
            DateTime dtlastDate = Convert.ToDateTime(lastDate);
            return (from r in db.requests
                       where r.reqDate <= dtlastDate && r.reqDate >= dtfirstDate 
                       select new ProductReqNoDate
                       {
                           departmant= r.departmant,
                           reqNo = r.reqNo ,
                           reqDate = r.reqDate,
                           prdctName= stringCutter((from p in db.products where p.reqNo == r.reqNo select p.prdctName).FirstOrDefault())
                       }).ToList();

        }
    }
  • Comme linq est exécutée lors du premier accès aux résultats, vous pourriez peut-être mis le premier 'a partir de/où" dans un var et puis en dehors de l'ifs, sélectionnez nouvelle requête sur le récupérées jeu de résultats.
InformationsquelleAutor blackraist | 2012-01-06