我需要从表格和特定页面上的视图访问数据,因此我创建了一个可以访问它们的类。看起来像这个`
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 :(得分:0)
您需要创建Loan_vwFieldValues的集合并返回 。我们没有足够的信息告诉您如何从数据访问层构建这些对象。
换句话说......
return View(_db.LOAN_VWFIELDVALESs.Where(predicate).Select(
x => new Loan_vwFieldValues()
{
loan = yourCodeHere,
vwFieldValues = moreOfYourCodeHere
}));
答案 1 :(得分: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);