簡體   English   中英

如何使用實體框架查詢列表

[英]How to query list using Entity framework

我是實體框架的新手。

我正在使用實體框架Code First,並創建了4個類。

該架構為:

  • 許多用戶<->許多角色
  • 一位用戶<->許多帖子
  • 許多帖子<->許多標簽

我有一個Admin區域,一個名為UsersController的控制器,帶有一個返回視圖的ActionResult。

public ActionResult Index()
{
   return View();
}

我從ViewModels創建了一個強類型的視圖。 在我的視圖模型中,我創建了一個帶有以下內容的類:

public class UsersIndex 
{
   public IEnumerable<User> Users { get; set; }
}

對於我的視圖,我看過一些代碼示例,其中的視圖可以有一個foreach循環:

@MyBlog.Areas.Admin.ViewModel
<tbody>
    @foreach (var user in Model.Users)
    {
        <tr>
            <td>@user.Id</td>
            <td>@user.Username</td>
            <td>@user.Email</td>
        </tr>
    }
</tbody>

但是在我的控制器中,我如何從數據庫中獲取用戶以將其視圖模型傳遞到視圖中?

您需要使用EF上下文對視圖模型進行水合處理。

public ActionResult Index()
{
    var model =
        new UsersIndex
        {
            Users = GetUsers()
        };

   return View(model);
}

private IEnumerable<User> GetUsers()
{
    using(var context = new CustomContext())
    {
        return context.Users.ToList();
    }
}

或者,如果您更喜歡查詢語法。

private IEnumerable<User> GetUsers()
{
    using(var context = new CustomContext())
    {
        return (from user in context.Users
                select user).ToList();
    }
}

一種方法將依賴於從控制器到存儲庫或數據上下文或某種datahelper類的調用。

在那兒,你可能會喜歡

public IEnumerable<User> UserReadAll()
{
 using (myEntities _db = new myEntities)
   { 
       return _db.Users.ToList();
   }
}

並在控制器中

Public ActionResult MyPage()
{
     var myUserList = MyHelper.UserReadAll();
     return View(myUserList);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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