2017-11-02 3 views
0

私はいくつかのフィルタを作成します。これはユーザが使用できます。だから、ユーザーは私の価値をそこに送ることもできます。ユーザーが値を送信するのか、ヌルのみを送信するのかを確認するにはどうすればよいですか?私は最初の3を追加as.netのDBからのデータのフィルタリング#

public ActionResult Index(int? SearchStuff, int? SearchCustomer, int? SearchWorker, int? SearchOrder, String SearchDate) 
    { 
     var stuff = from s in db.Orders select s; 
     var customer = from c in db.Orders select c; 
     var worker = from w in db.Orders select w; 
     var order = from o in db.Orders select o; 
     var date = from d in db.Orders select d; 
     var helper = from d in db.Orders select d; 
     IQueryable<Order> filter = order; 

     if (SearchCustomer != null && !String.IsNullOrEmpty(SearchDate) && SearchStuff != null && SearchWorker != null) 
     { 
      helper = helper.Where(a => a.CustomerId == SearchCustomer).Where(a => a.StuffId == SearchStuff).Where(a => a.WorkerId == SearchWorker).Where(a => a.Date.Contains(SearchDate)); 
      filter= helper; 
     } 

答えて

0

あなたはこのような何かを試みることができる、私は(それは多くの場合だけでなく、ストアド・プロシージャで使用される参照してください。今私は、このようにそれを確認し、このisn't理想的なソリューションが動作しますが、it's検索オプションは自由に追加できます)。

Public ActionResult Index(int? searchStuff, int? searchCustomer, int? searchWorker) 
    { 
     myOrders = db.Orders 
      .Where(o => (searchStuff == null || o.StuffId == searchStuff) 
        && (searchCustomer == null || o.CustomerId == searchCustomer) 
        && (searchWorker == null || o.WorkerId == searchWorker)); 
    } 
関連する問題