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 statement), и говорит, что 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

Просто уточнить ... Почему мы извлекаем то, что не является таблицей, как если бы оно было? Разве не было бы смысла создавать новый класс, который соответствует тому, что вы хотите, а затем использовать его для страницы, а не использовать таблицу-that-isn't-a-table? – 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); 
Смежные вопросы