여러 테이블에서 데이터를 검색하고 viewmodel을 사용하여보기에 표시하는 방법

틸리 나 데 실바

mvc 5를 사용하여 mvc 응용 프로그램에 메시지 시스템을 개발하려고합니다. Event, EventUser, EventObject라는 테이블이 있습니다. 각 테이블에는 다음이 있습니다.

행사

신분증

생성자

시작 시간

IsShared

예산

EventUser

EventID

UserID

IsAccepted

EventObject

EventID

ObjectID

내 messageController에는 사용자 ID의 매개 변수를받는 인덱스 메서드가 있습니다. 사용자가이 메서드를 사용하여 초대 한 모든 이벤트를 표시해야합니다.

namespace MvcApp.Controllers
{
public class MessageController : Controller
{
    private EPlannerDatabaseEntities db = new EPlannerDatabaseEntities();
    // GET: /Message/
    public ActionResult Index(int UId)
    {

/* linq expressions */

        return View();
    }
}
}

매개 변수가 전달되면 나는 원한다.

* UID = UserID 인 EventUser 테이블에서 선택하고 EventID 속성을 사용하여 결과를 Event 및 EventObject 테이블과 결합합니다.

* 마지막으로 최종 결과를 사용하여 사용자가 초대 한 모든 이벤트의 정보를 표시해야합니다. CreatedBy, StartTime, Budget, 다른 사용자, 객체 등.

나는 mvc 및 viewmodel 개념을 처음 사용합니다. viewmodel 개념이 이러한 상황에 도움이 될 수 있다고 들었습니다. viewmodel 개념을 사용하여이 문제를 극복 할 수 있습니까? 그렇다면보기 모델에 추가해야하는 것은 무엇입니까 ?? 그렇지 않으면 이것을 수행하는 다른 방법은 무엇입니까?

크리스 프랫

Entity Framework와 같은 ORM을 사용한 쿼리에 관한 질문 인 경우 테이블 스키마가 아닌 엔터티 를 게시해야 합니다. ORM의 전체 목적은 기본 데이터베이스 구조를 추상화하는 것이므로 스키마는 종종 엔티티 클래스와 유사하지만 상당히 다를 수 있습니다. 결과적으로 엔티티 클래스에 대한 가정을해야합니다.

모든 것을 쿼리하려면 다음과 같은 것이 필요합니다.

var events = db.Events.Where(m => 
    m.EventUsers.Any(u => u.UserID == UId && u.IsAccepted)
).Include(m => m.EventObjects);

다음과 같은 항목 클래스를 가정합니다.

public class Event
{
    ...

    public virtual ICollection<EventObject> EventObjects { get; set; }
    public virtual ICollection<EventUser> EventUsers { get; set; }
}

public class EventUser
{
    ...
    public int UserID { get; set; }
    public bool IsAccepted { get; set; }
}

당신은의 열거 형으로 끝납니다 Event. EventObject개별 이벤트에 대한 에 액세스해야하는 경우 적절한 컬렉션 속성을 사용해야합니다. 예를 들면 :

foreach (var item in events)
{
    foreach (var obj in item.EventObjects)
    {
        // do something with `obj` (an invidual `EventObject` instance)
    }
}

실제 User객체 가 필요한 경우 먼저 객체를 쿼리하고 관련 Events 및 EventObjects를 포함하는 것이 좋습니다 .

var user = db.Users.Include("EventUsers.Event.EventObjects").SingleOrDefault(m => m.UserID == UId);

다음과 같은 엔티티를 가정합니다.

public class User
{
    ...
    public virtual ICollection<EventUser> EventUsers { get; set; }
}

public class EventUser
{
    ...
    public virtual Event Event { get; set; }
}

public class Event
{
    ...
    public virtual ICollection<EventObject> EventObjects { get; set; }
}

그러나이 방법을 사용하면 포함 Event된를 수락 여부에 따라 필터링 할 수 없습니다. 이에 대한 잠재적 인 방법이 있지만 EventUsers전체 지연 로딩을 비활성화해야하며 필요한 정보를 쿼리하는 작업이 복잡해집니다. 해당 경로로 이동해야하는 경우 https://msdn.microsoft.com/en-us/data/jj574232.aspx#explicitFilter를 참조 하십시오 .

그렇지 않으면 컬렉션을 반복하기 전에 허용되지 않는 이벤트를 제외 할 수 있습니다.

var events = user.EventUsers.Where(m => m.IsAccepted).Select(m => m.Event);

실제로 이것에 대해 뷰 모델 자체가 필요하지 않습니다. 이벤트 목록 (관련 항목 포함 EventObject) 또는 단일 사용자 인스턴스 (관련 이벤트 및 관련 항목 포함 EventObject)를 뷰에 직접 전달할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Objective-C를 사용하여 테이블보기에서 여러 행을 강조 표시하는 방법

분류에서Dev

레이블을 사용하여 테이블보기에서 셀 수를 표시하는 방법

분류에서Dev

"Android Studio에서 커서를 사용하여 여러 테이블에서 데이터를 검색하는 방법"

분류에서Dev

xamarin을 사용하여 URl에서 JSON 메시지를 검색하고 테이블보기에 표시

분류에서Dev

테이블에서 여러 열을 계산하고 PHP를 사용하여 표시하는 방법

분류에서Dev

PHP를 사용하여 mysql 데이터베이스의 여러 테이블에서 여러 값을 검색하는 방법

분류에서Dev

테이블의 tbody에서 json encode를 사용하여 데이터베이스 값을 표시하는 방법

분류에서Dev

Entity Framework를 사용하여 여러 테이블에서 데이터를 검색하는 방법

분류에서Dev

각도 js를 사용하여 HTML 테이블에 데이터 테이블 값을 표시하는 방법

분류에서Dev

Laravel을 사용하여 JSON 데이터를 검색하고 데이터베이스에 저장하는 방법

분류에서Dev

jquery 또는 javascript를 사용하여 테이블에서 여러 열을 검색하는 방법

분류에서Dev

Flask를 사용하여 Postgresql 데이터베이스에서 데이터를 가져오고 HTML 테이블을 표시하는 방법

분류에서Dev

R을 사용하여 웹 페이지에서 여러 테이블을 검색하는 방법

분류에서Dev

여러 테이블에서 여러 열을 가져오고 MYSQL에서 조인을 사용하여 비어 있지 않은 열에 데이터를 표시하고 빈 열에 null 또는 0을 표시하는 방법

분류에서Dev

루프를 사용하여 데이터 쿼리에서 여러 테이블을 만드는 방법

분류에서Dev

Join 및 where 절을 사용하여 여러 테이블에서 데이터를 가져 오는 방법

분류에서Dev

LinQ To Entities를 사용하여 여러 테이블에서 데이터 행을 가져 오는 방법

분류에서Dev

여러 테이블에서 검색하고 그중 하나만 표시하는 방법

분류에서Dev

PHP 양식을 사용하여 여러 테이블에서 데이터를 검색하는 방법은 무엇입니까?

분류에서Dev

PDO를 사용하여 PHP에서 테이블 값을 표시하는 방법

분류에서Dev

테이블보기 셀에 여러 줄을 표시하는 방법

분류에서Dev

Swift 및 parse.com을 사용하여 테이블보기에 이미지를 표시하는 방법

분류에서Dev

Codeigniter 4에서 여러 테이블을 사용하는 방법

분류에서Dev

보기에서 내보내기 버튼 클릭을 사용하여 Codeigniter에서 데이터베이스 테이블을 XL 시트로 내보내는 방법

분류에서Dev

Ajax를 사용하여 부분보기에서 상위 테이블을 업데이트하는 방법

분류에서Dev

SqlBulkCopy를 사용하여 데이터 테이블을 삽입하기 전에 데이터 테이블의 데이터를 검증하는 방법

분류에서Dev

C #을 사용하여 MS Access 데이터베이스의 두 개 이상의 테이블에서 데이터를 검색하는 방법

분류에서Dev

테이블을 사용하여 표시하여 MySQL db에서 데이터를 검색하고 이미지에 나타나는 것과 같은 방식으로 정렬하고 싶습니다.

분류에서Dev

mysql에서 여러 테이블의 열 이름을 표시하는 방법

Related 관련 기사

  1. 1

    Objective-C를 사용하여 테이블보기에서 여러 행을 강조 표시하는 방법

  2. 2

    레이블을 사용하여 테이블보기에서 셀 수를 표시하는 방법

  3. 3

    "Android Studio에서 커서를 사용하여 여러 테이블에서 데이터를 검색하는 방법"

  4. 4

    xamarin을 사용하여 URl에서 JSON 메시지를 검색하고 테이블보기에 표시

  5. 5

    테이블에서 여러 열을 계산하고 PHP를 사용하여 표시하는 방법

  6. 6

    PHP를 사용하여 mysql 데이터베이스의 여러 테이블에서 여러 값을 검색하는 방법

  7. 7

    테이블의 tbody에서 json encode를 사용하여 데이터베이스 값을 표시하는 방법

  8. 8

    Entity Framework를 사용하여 여러 테이블에서 데이터를 검색하는 방법

  9. 9

    각도 js를 사용하여 HTML 테이블에 데이터 테이블 값을 표시하는 방법

  10. 10

    Laravel을 사용하여 JSON 데이터를 검색하고 데이터베이스에 저장하는 방법

  11. 11

    jquery 또는 javascript를 사용하여 테이블에서 여러 열을 검색하는 방법

  12. 12

    Flask를 사용하여 Postgresql 데이터베이스에서 데이터를 가져오고 HTML 테이블을 표시하는 방법

  13. 13

    R을 사용하여 웹 페이지에서 여러 테이블을 검색하는 방법

  14. 14

    여러 테이블에서 여러 열을 가져오고 MYSQL에서 조인을 사용하여 비어 있지 않은 열에 데이터를 표시하고 빈 열에 null 또는 0을 표시하는 방법

  15. 15

    루프를 사용하여 데이터 쿼리에서 여러 테이블을 만드는 방법

  16. 16

    Join 및 where 절을 사용하여 여러 테이블에서 데이터를 가져 오는 방법

  17. 17

    LinQ To Entities를 사용하여 여러 테이블에서 데이터 행을 가져 오는 방법

  18. 18

    여러 테이블에서 검색하고 그중 하나만 표시하는 방법

  19. 19

    PHP 양식을 사용하여 여러 테이블에서 데이터를 검색하는 방법은 무엇입니까?

  20. 20

    PDO를 사용하여 PHP에서 테이블 값을 표시하는 방법

  21. 21

    테이블보기 셀에 여러 줄을 표시하는 방법

  22. 22

    Swift 및 parse.com을 사용하여 테이블보기에 이미지를 표시하는 방법

  23. 23

    Codeigniter 4에서 여러 테이블을 사용하는 방법

  24. 24

    보기에서 내보내기 버튼 클릭을 사용하여 Codeigniter에서 데이터베이스 테이블을 XL 시트로 내보내는 방법

  25. 25

    Ajax를 사용하여 부분보기에서 상위 테이블을 업데이트하는 방법

  26. 26

    SqlBulkCopy를 사용하여 데이터 테이블을 삽입하기 전에 데이터 테이블의 데이터를 검증하는 방법

  27. 27

    C #을 사용하여 MS Access 데이터베이스의 두 개 이상의 테이블에서 데이터를 검색하는 방법

  28. 28

    테이블을 사용하여 표시하여 MySQL db에서 데이터를 검색하고 이미지에 나타나는 것과 같은 방식으로 정렬하고 싶습니다.

  29. 29

    mysql에서 여러 테이블의 열 이름을 표시하는 방법

뜨겁다태그

보관