2015-09-01 2 views
0

Multiple где условие в следующем результат кода только первой строки отображения,Multiple где условие NTT фреймворка

 public bill_transaction Getbill_transaction(int id) 
    { 
     bill_transaction bill_transaction = db.bill_transaction.Where(m => m.Cust_Id == id && m.Bill_Status == "P").FirstOrDefault(); 
     if (bill_transaction == null) 
     { 
      throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); 
     } 

     return bill_transaction; 
    } 

я хочу, чтобы отобразить все строки, удовлетворяющие этому условию,

даже для одного условия также , только первая строка, только для того, чтобы отображать все строки.

ответ

0

Просто удалите FirstOrDefault, также поэтому следующая проверка bill_transaction == null выполнена. Так выглядит, что вы также хотите удалить эту проверку, тип возврата также не только bill_transaction, он должен быть IQueryable<bill_transaction> или IEnumerable<bill_transaction>. Суммируем все мы имеем этот новый простой метод:

public IQueryable<bill_transaction> Getbill_transactions(int id) 
{ 
    var ts = db.bill_transaction.Where(m => m.Cust_Id == id && m.Bill_Status == "P"); 
    if (!ts.Any()) { 
     throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); 
    } 
    return ts; 
} 

Примечание, если нет какой-либо транзакции, генерируется исключение (это поведение зависит от вас).

Смежные вопросы