簡體   English   中英

如何使用Entity Framework使用連接三個表獲取所有數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM