查询字符串为NULL时,请勿包含数据库列

时间:2018-05-08 10:13:43

标签: asp.net-mvc linq entity-framework-6

我正在尝试制作搜索功能。下面的代码表示如果PortStatus和TIN不为null,则查询数据库。

  

例如1.如果用户选择了端口和状态但没有选择TIN,那么   搜索数据库时不应包含TIN。

     

例如2.如果用户仅选择了端口,则状态和TIN应该   搜索数据库时不包括在内。

代码

        int Port = Convert.ToInt32(Request.QueryString["Port"]);
        var Status = Request.QueryString["Status"];
        var TIN = Request.QueryString["TIN"];

        List<Transaction> QueriedTransactionList;
        QueriedTransactionList = db.Transactions.ToList();

        TransactionViewModel TransactionViewModel = new TransactionViewModel();
        List<TransactionViewModel> TransactionDataList = QueriedTransactionList.Select(x => new TransactionViewModel{
            TTransactionID = x.TTransactionID,
            BatchID = x.BatchID,
            TransactionDateTime = x.TransactionDateTime,
            TransactionStatus = x.TransactionStatus,
            TaxPayerName = x.Card.TaxPayer.TaxPayerName,
            TaxPayerEmail = x.Card.TaxPayer.TaxPayerEmail,
            TaxPayerTIN = x.Card.TaxPayer.TaxPayerTIN,
            DispatchBy = x.User.UserName,
            DestinationPort = x.Card.Port.PortName,
            BatchCards = Helper.GetBatchQtyByBatchID(x.BatchID)
        }).GroupBy(x => x.BatchID).Select(x => x.LastOrDefault()).Where(x => Status.IndexOf(x.TransactionStatus, StringComparison.OrdinalIgnoreCase) >= 0 && TIN.IndexOf(x.Card.TaxPayerTIN, StringComparison.OrdinalIgnoreCase) >= 0).OrderByDescending(x => x.TTransactionID).ToList();

0 个答案:

没有答案