ASP.NET MVC项目中如何把一个生成的EntityFramework Detail做为另一个相关Model的Index页面

比如我想在商品页面中显示其他人对商品的评价。因为评价包括:评论者,评分和详情所以被存在另一个Table里面。但是我想在这一个页面里面都显示出来。

查询的时候可以把两个不同表的数据都装进来,回头给你写个例子,稍等。

图片说明

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Q749957.Models;
using System.IO;
using System.Text.RegularExpressions;

namespace Q749957.Controllers
{
    public class ProductController : Controller
    {

        DataClasses1DataContext db = new DataClasses1DataContext();

        //
        // GET: /Product

        public ActionResult Index()
        {
            var model = db.Products.Select(x => new ProductShowViewModel()
            {
                CreateTime = x.createtime,
                Description = x.description,
                Name = x.name,
                ID = x.id
            }).ToList();
            return View(model);
        }

        //
        // GET: /Product/Create

        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /Product/Create

        [HttpPost]
        public ActionResult Create(FormCollection fc)
        {
            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];
                var filename = Directory.GetFiles(Request.MapPath("~/Upload")).Count() == 0 ? 0 :
                    Directory.GetFiles(Request.MapPath("~/Upload"))
                    .Where(x => Regex.IsMatch(x, "\\d+"))
                    .Select(x => int.Parse(Regex.Match(x, "\\d+").Value))
                    .Max() + 1;
                file.SaveAs(Request.MapPath("~/Upload/" + filename));
                var prod = new Product()
                {
                    createtime = DateTime.Now,
                    description = Request["Description"],
                    name = Request["Name"],
                    picid = filename
                };
                db.Products.InsertOnSubmit(prod);
                db.SubmitChanges();
                db.Comments.InsertOnSubmit(new Comment() { comment1 = "good!", nickname = "Jack", prodid = prod.id });
                db.SubmitChanges();
                db.Comments.InsertOnSubmit(new Comment() { comment1 = "very good!", nickname = "Jim", prodid = prod.id });
                db.SubmitChanges();
            }
            return View();
        }

        //
        // GET: /Product/Show/1

        public ActionResult Show(int id)
        {
            var prod = db.Products.Single(x => x.id == id);
            var model = new ProductShowViewModel()
            {
                ID = prod.id,
                Comments = db.Comments.Where(x => x.prodid == id)
                    .Select(x => new CommentItem
                    {
                        Comment = x.comment1,
                        NickName = x.nickname
                    }).ToList(),
                CreateTime = prod.createtime,
                Description = prod.description,
                Name = prod.name,
                Image = Request.ApplicationPath + "upload/" + prod.picid.ToString()
            };
            return View(model);
        }

    }
}