2011-02-08 5 views
1

테이블과 특정 페이지의보기에서 데이터에 액세스해야하므로 둘 다 액세스 할 수있는 클래스를 만들었습니다. 이 내 페이지의 상단에어떻게 내 페이지를 테이블 대신 클래스에서 상속받을 수 있습니까?

namespace LoanManager.Models 
{ 
    public class Loan_vwFieldValues 
    { 
     public Loan loan { get; set; } 
     public VW_FIELD_VALUE vwFieldValues { get; set; } 

    } 
} 

을`처럼 나는 작동 다른 다른 코드 뒤에이 내 컨트롤러가 다음이

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewPage<IEnumerable<LoanManager.Models.Loan_vwFieldValues>>" %> 

이 보인다.

return View(_db.LOAN_VWFIELDVALESs.Where(predicate)); 

내 정의는 이와 같습니다.

public System.Data.Linq.Table<Loan_vwFieldValues> LOAN_VWFIELDVALESs 
     { 
      get 
      { 
       return this.GetTable<Loan_vwFieldValues>(); 
      } 
     } 

이 내 페이지의 모든 나머지 (그들은 물론 다른 이름을) 잘 동작하지만, 그들은 단지 하나 개의 테이블 또는 내가 만든 뷰가 참조하는 클래스는 아니지만이 페이지에 필요 테이블과 뷰에 액세스하지만 게시 된 코드의 마지막 부분 (return 문)에 도달하면 Loan_vwFieldValues가 테이블이 아니기 때문에 불만을 표시합니다. 테이블이 아니기 때문에 사실입니다. Loan_vwFieldValues를 채우는 것

public ActionResult LoanProperties(int id) 
    { 
     Loan_vwFieldValues l = new Loan_vwFieldValues(); 

     l.loan = (from a in _db.Loans where a.LOAN_ID == id select a).First(); 
     l.vwFieldValues = (from v in _db.VW_FIELD_VALUEs where v.Loan_ID == id select v).First(); 

     return View(l); 

    } 

그러나 나는 이것을 나의 학급과 함께 사용할 수 있습니까? 미리 감사드립니다.

+0

그냥 명확히하기 위해 ... 우리는 왜 마치 테이블이 아닌 것처럼 검색하고 있습니까? 당신이 원하는 것과 일치하는 새로운 클래스를 만든 다음 테이블을 사용하는 대신 페이지에 사용하는 것이 더 합리적이지 않습니까? – guildsbounty

+0

@ guildsbounty - 그는 그와 같은 클래스 (Loan_vwFieldValues)를 올바르게 정의하고 그의 페이지에서 올바르게 참조했습니다. 그는 비록 그 유형의 객체를 생성하지는 않지만 ... –

+0

예, "내 수업"유형의 객체를 만드는 방법을 알고 있다면, 모범 사례 또는 sintax를 찾을 수 없습니다. pls 도움말 또는 튜토리얼 또는 다른 곳으로 보내주세요. 내가 이걸 어떻게 성취 할 수 있는지 배울 수있어. – kyle

답변

0

Loan_vwFieldValues ​​컬렉션을 만들고 인 컬렉션을 반환해야합니다. 데이터 액세스 레이어에서 해당 개체를 구성하는 방법을 알려주는 정보가 충분하지 않습니다. 즉

...

return View(_db.LOAN_VWFIELDVALESs.Where(predicate).Select(
    x => new Loan_vwFieldValues() 
    { 
    loan = yourCodeHere, 
    vwFieldValues = moreOfYourCodeHere 
    })); 
0

덕분에 도움이 모든 일이, 내가 다음을 수행하여 해결책을 발견 ... 난 그것뿐만 아니라 다른 사람을 도울 수 있기를 바랍니다.

IQueryable<Loan> loanList = _db.Loans.Where(predicate); 

List<Loan_vwFieldValues> loanVwList = new List<Loan_vwFieldValues>(); 

foreach (Loan loan in loanList) 
{ 
    Loan_vwFieldValues loanVw = new Loan_vwFieldValues(); 
    loanVw.loan = loan; 
    loanVw.vwFieldValues = (from n in _db.VW_FIELD_VALUEs where n.Loan_ID == loan.LOAN_ID select n).First(); 
    loanVwList.Add(loanVw); 
} 

return View(loanVwList); 
관련 문제