2014-04-24 2 views
1

Entity 프레임 워크를 처음 사용합니다.Entity 프레임 워크를 사용하여 목록을 쿼리하는 방법

저는 Entity framework Code First와 협력하여 4 개의 클래스를 만들었습니다.

스키마는 다음과 같습니다

  • 많은 사용자 < -> 많은 역할
  • 한 사용자 < -> 많은 포스트
  • 많은 포스트 < -> 많은 태그

내가 가진 Admin의 영역, 그리고 View를 리턴하는 ActionResult와 함께 UsersController라고하는 컨트롤러가있다.

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

나는 ViewModels에서 강력한 형식의 뷰를 만들었습니다. 내 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> 

하지만 내 컨트롤러

방법 내 데이터베이스에서 사용자를 내 뷰 모델로 전달할 수 있습니까?

+0

당신이 dbcontext 클래스는 사용자의 컨트롤러 폴더에 다음의 새로운 컨트롤러, 바로 클릭이라고하며, 그것은 당신의 dbcontext 클래스를 요청합니다 entitframework 템플릿을 사용하는 방법의 의존은 (데이터 셋이 하나입니다) 이 경우 User라는 모델의 경우 anwer가있는 코드를 참조하십시오. –

답변

2

컨트롤러에 뭔가가있을 수 있습니다.

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(); 
    } 
} 
0

하나의 접근 방식은 컨트롤러에서 datacontext 또는 dathelper 클래스로의 호출에 의존합니다.

이, 당신은

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

같은 그리고 당신은 EF 컨텍스트를 사용하여 뷰 모델 수분을 필요

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