【问题标题】:sql query help in .Net MVC5.Net MVC5 中的 sql 查询帮助
【发布时间】:2014-03-13 01:05:01
【问题描述】:

这似乎很基本,我一生都无法弄清楚。

使用 .net MVC5 我有一个路由 /{categoryName}/ 我正在尝试显示给定 {categoryName} 中的所有子类别。

现在我有并且正在返回子类别 ID 号:

var subCategoriesInCategory =
  from cat in db.Categories
  join subcat in db.SubCategories
  on cat.CategoryId equals subcat.CategoryId
  where (cat.CategoryName == categoryName)
  select (subcat);

我确信这对于精通 SQL 的人来说是基本的,但是...

谢谢

【问题讨论】:

    标签: sql-server asp.net-mvc linq asp.net-mvc-5


    【解决方案1】:

    尝试从子类别的角度而不是类别的角度来看待这个。

    var subCategoriesInCategory =
        from subcat in db.SubCategories
        where subcat.CategoryId == somevalue
        select subcat;
    

    您需要将 somevalue 替换为匹配类别的 CategoryID 值。

    或者你可以这样做绕过连接子句:

    var subCategoriesInCategory =
        from subcat in db.SubCategories
        where subcat.CategoryId == (from cat
            in db.Categories
            where cat.CategoryName == categoryName
            select cat.CategoryId
        ).FirstOrDefault()
        select subcat;
    

    【讨论】:

      【解决方案2】:

      看起来不错。试试你知道有子猫的类别

      var subCategoriesInCategory =
        (from cat in db.Categories
        join subcat in db.SubCategories
        on cat.CategoryId equals subcat.CategoryId
        where (cat.CategoryName == "ExistingCategory")
        select subcat).FirstOrDefault();
      if (subCategoriesInCategory == null ) 
      {
         // somethings wrong !
      }
      

      或者如果您只想要子类别 ID

       ...  select new { subcat.ID } 
      

      【讨论】:

        猜你喜欢
        • 2021-03-17
        • 2010-10-20
        • 1970-01-01
        • 2011-10-26
        • 2016-08-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多