2017-03-01 90 views
0

我想從控制器發送數據,以查看像如何通過數據的一行從控制器查看,不爲IEnumerable <>

EMP e =(EMP) db.EMPs.Where(n => n.id == j); 
return View(e); 

這裏EMPModel對象。 的誤差是

無法轉換類型的對象System.Data.Entity.Infrastructure.DbQuery`1 [WebApplication1.Models.EMP]鍵入WebApplication1.Models.EMP

注:我不能使用IEnumerable<Model>

回答

2

有一些方法可以做到這一點:

// this way would throw exception if no result was found or more than 1 result 
EMP e =(EMP) db.EMPs.Single(n => n.id == j); 

// if no result was found, return null 
EMP e =(EMP) db.EMPs.SingleOrDefault(n => n.id == j); 

// if no result was found, throw exception. 
// if there are more than 1 result, return the first item 
EMP e =(EMP) db.EMPs.First(n => n.id == j); 

// if no result was found, return null. 
// if there are more than 1 result, return the first item 
EMP e =(EMP) db.EMPs.FirstOrDefault(n => n.id == j); 

// cast to list 
List<EMP> e =(EMP) db.EMPs.Where(n => n.id == j).ToList(); 
// then, select the first item via index: 
return View(e[0]); 
7

只是FirstOrDefault更換Where到返回序列的第一個元素:

EMP e = (EMP) db.EMPs.FirstOrDefault(n => n.id == j); 
+1

附加說明:請務必檢查FirstOrDefault'的'的返回值,因爲它也可以的情況下,謂語不匹配返回'null'。 – ckruczek

+0

謝謝,它的工作原理 – Saurabh

相關問題