[英]How to fetch all data using join three tables using Entity Framework
我收到此錯誤:
System.NullReferenceException:未將對象引用設置為對象的實例
我該如何解決此異常?
加入查詢控制器:
var Cs = new List<MyModel>();
using (Join3Entities1 db = new Join3Entities1())
{
DateTime start1 = DateTime.Now;
ViewBag.Start = "Start Time :" + start1;
Cs = (from e in db.Students
join p in db.Marks on e.S_ID equals p.S_ID
join t in db.Details on p.School_ID equals t.School_ID
where p.Score > 50
select new MyModel
{
S_Name = e.S_Name,
Score = (int)p.Score,
Status = p.Status,
Address_City = t.Address_City,
Email_ID = t.Email_ID,
Accomplishments = t.Accomplishments
}).ToList();
DateTime end1 = DateTime.Now;
ViewBag.end = "End Time:" + end1;
TimeSpan time1 = end1 - start1;
ViewBag.time = "TimeSpan:" + time1;
}
return View();
上面的代碼是加入我在控制器部分寫的三個表
model:public class MyModel {public string S_Name {get; 組; } public int Score {get; 組; public string Status {get; 組; public字符串Address_City {get; 組; public字符串Email_ID {get; 組; } public string Accomplishments {get; 組; }}
視圖:
@model IEnumerable<Join3table.Models.MyModel>
@{
ViewBag.Title = "Home Page";
}
@foreach (var per in Model)
{
<tr>
<td>@per.S_Name</td>
<td>@per.Score</td>
<td>@per.Status</td>
<td>@per.Address_City</td>
<td>@per.Email_ID </td>
<td>@per.Accomplishments</td>
</tr>
}
</tbody>
</table>
我用主鍵和外鍵創建了三個表學生,標記和細節
而不是select new model
,嘗試逐個返回每個表以查看nullref的具體來源,這樣你就可以縮小范圍。
安全方面的另一個選擇是在調用每一列之前確保nullrefcheck S_Name = e != null && !string.isNullOrEmpty(e.S_Name) ? e.S_Name : string.Empty;
S_Name = e != null && !string.isNullOrEmpty(e.S_Name) ? e.S_Name : string.Empty;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.