为什么返回System.NullReferenceException的对象错误

时间:2018-05-08 23:18:42

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

我收到了System.NullReferenceException我发现此问题已经在TransactionDataList.Where(x => x.Card.PortID == Port)专门针对x.Card.PortID

有人可以向我解释造成这种情况的原因以及如何解决这个问题?

搜索查询:

  

http://localhost:52863/Reporting?Port=5&Status=None&TIN=

错误消息

  

对象引用未设置为对象的实例。描述:一个   在执行当前Web期间发生了未处理的异常   请求。请查看堆栈跟踪以获取有关的更多信息   错误以及它在代码中的起源。

     

异常详细信息:System.NullReferenceException:不是对象引用   设置为对象的实例。

     

源错误:第40行:第41行:if(端口> 0){Line   42:TransactionDataList = TransactionDataList.Where(x   => x.Card.PortID == Port);第43行:}第44行:

代码

DBEntities db = new DBEntities();

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

IEnumerable<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
}).GroupBy(x => x.BatchID).Select(x => x.LastOrDefault()).OrderByDescending(x => x.TTransactionID);

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

if ( Port > 0 ){
    TransactionDataList = TransactionDataList.Where(x => x.Card.PortID == Port);
}

TransactionDataList = TransactionDataList.ToList();

0 个答案:

没有答案