首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq To Entities

Linq To Entities
EN

Stack Overflow用户
提问于 2011-06-17 16:08:19
回答 2查看 96关注 0票数 2

我在下面的linq表达式中的where子句中有一个小问题。如果我输入数字3而不是department.Id,我会得到想要的结果,但是当我使用department.Id时,我在结果集中什么也得不到。

我还希望再次使用distinct查询来获得该过滤器名称的过滤器数量的计数。

代码语言:javascript
复制
var dept = Page.RouteData.Values["department"];
var department = (from d in db.Departments 
                  where d.Name.Replace(" ", "-") == dept 
                  select new {d.Id, d.Name}).FirstOrDefault();


var query = from p in db.Products
            join f in db.ProductFilters on p.Id equals f.ProductId into filters
            from x in filters.Where(x => x.Product.DepartmentId == department.Id 
            /* if == 3 it works */)                            
            select new { x.Name, x.Id };     
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-17 16:25:21

从评论升级到答案:

您是否检查过部门实例在第一个linq语句之后应该是您认为的位置--即有一个Id == 3

票数 2
EN

Stack Overflow用户

发布于 2011-06-17 16:36:30

您的第一个查询没有找到任何有效的department,因此返回default,这很可能意味着departmend.Id == 0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6383031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档