2011-02-08 18 views
1

テーブルと特定のページのビューからデータにアクセスする必要があるので、両方にアクセスできるクラスを作成しました。私はこのテーブルの代わりにクラスからページを継承するにはどうすればよいですか?

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

が、私は働く他のいくつかの他のコードの後に​​、この私のコントローラを持っている私のページの上部にこの `

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

    } 
} 

のように見えます。

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がテーブルとしてマッピングされていないと言います。テーブルではないのでtrueです。 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); 
関連する問題