使用两个模型构建ViewModel
模型1:人(身份证,姓名,地址,电话,CategoryId)
模型2:类别(CategoryId,CategoryText)
ViewModel:PersonViewModel(Name,Phone,CategoryText)
问题:如何在我的控制器中生成ViewModel并将其转发到视图:
var model = (from x in db.Person
select new PersonViewModel {
Name = x.Name,
Phone = x.Phone,
CategoryText = ??? }).ToList();
如何生成CategoryText?
由于
答案 0 :(得分:3)
您需要加入类别。 您可能能够包括如下,如果不是,您只需要加入。尝试下面的内容(我忘记了你是否可以在这个语法中包含() - 我脑子里的东西告诉我你不能,如果是这样的话我会很快删除它,因为我看到有人刚刚发布了连接语法)
var model = (from x in db.Person.Include(o=>o.Category) //assumes EF 4.1 if not try .Include("Category")
select new PersonViewModel {
Name = x.Name,
Phone = x.Phone,
CategoryText = x.Category.CategoryText }).ToList();
答案 1 :(得分:1)
var model = (from x in db.Person
join y from db.Category on x.CategoryId equals y.CategoryID
select new PersonViewModel {
Name = x.Name,
Phone = x.Phone,
CategoryText = y.CategoryText }).ToList();