返回EF中的内连接

时间:2011-02-05 20:46:55

标签: asp.net-mvc

我正在尝试学习ASP.NET MVC,所以我做了测试项目,我希望在索引中显示城市列表,当您点击城市以查看这些城市中的属性时。 my edmx

然后我在global.asax中做了一些更改,以便提供漂亮的URL:

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
          "Home-Browse",
          "Accommodation-{city}",
          new { controller = "Home", action = "Browse", city = "" });

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

所以现在看到城市列表后,我点击其中一个,我得到的网址如下:/Accommodation-Amsterdam 我的问题是我不知道如何进行内连接,以告诉控制器向我显示所选区域的属性。 (我告诉过你我刚刚学习这个)

我的家庭主管:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using accomm2.Models;

namespace accomm2.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        dataEntities _db;

        public HomeController()
        {
            _db = new dataEntities();
        }


        public ActionResult Index()
        {
            ViewData.Model = _db.Cities.ToList();

            return View();
        }

        public ActionResult Browse()
        {
          //ViewData.Model = _db.Properties.ToList();


            var properties = from c in _db.Cities
                             from p in c.Properties
                             where c.CityId == CityId
                        select c;


            return View(properties.ToList()); 

        }
    }
}

有人可以帮我解决我的Linq查询问题,或者至少指导我做正确的方法吗?

1 个答案:

答案 0 :(得分:1)

在您的浏览器上,只需添加string city作为参数,它就会被MVC神奇地填充。