我正在使用VS 2010,MVC,VS 2005
我创建.dbml文件作为我的模型并在.dbml文件中映射表
我使用LINQ to SQL连接表。 我想显示两个表的记录,即tbl_class,tbl_subject
我的控制器中的COde看起来像这样
public ActionResult SubjectByTeacher()
{
var DataContext = new SMSAPPDataContext();
var resultclass = (from t in DataContext.tbl_teachers
from e in DataContext.tbl_teacherenrollments
from b in DataContext.tbl_batches
from c in DataContext.tbl_classes
from s in DataContext.tbl_subjects
where
t.Teacher_ID == e.Teacher_ID
&&
e.Batch_ID == b.Batch_ID
&&
b.Class_ID == c.Class_ID
&&
e.Sub_ID == s.Sub_ID
&&
t.Teacher_Name == "ABC"
select c;
var resultsubject = from t in DataContext.tbl_teachers
from e in DataContext.tbl_teacherenrollments
from b in DataContext.tbl_batches
from c in DataContext.tbl_classes
from s in DataContext.tbl_subjects
where
t.Teacher_ID == e.Teacher_ID
&&
e.Batch_ID == b.Batch_ID
&&
b.Class_ID == c.Class_ID
&&
e.Sub_ID == s.Sub_ID
&&
t.Teacher_Name == "ABC"
select s;
return View();
}
然后我在控制器中创建一个类来映射两个变量,即resultclass,resultsubject
public class MyViewModel
{
public MyViewModel(SMSAPPDataContext resultclass, SMSAPPDataContext resultsubject)
{
this.rc = resultclass;
this.rs = resultsubject;
}
public SMSAPPDataContext rc { get; private set; }
public SMSAPPDataContext rs { get; private set; }
}
此类将用于在强类型视图中将视图创建为模型。
但我无法弄清楚,在返回视图中传递什么?????
它可能就像返回视图(new myviewmodel);
但这会给出错误,我应该在代码???
中的任何位置使用ToList()属性如果有人告诉我任何其他方法,请帮助
此致
答案 0 :(得分:0)
假设您的视图被强类型化以使用MyViewModel,例如:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<YourNameSpaceHere.MyViewModel>" %>
然后使用
之类的东西return View(new MyViewModel(resultclass, resultsubject));
在控制器中应该工作。虽然我认为SMSAPPDataContext
是LINQ查询将返回的正确类型。