1

我正在尝试从与使用 linq 的项目列表的类别类型匹配的类别列表中进行选择。IE,从所有 FIGstationeryCategories 的列表中,从已过滤的列表中仅选择 FiGStationeryType 具有匹配类别的那些。型号如下所示。

public class FIGstationeryType
{
    public int Id { get; set; }
    public virtual FIGstationeryCategory Category { get; set; }
    public virtual FIGcompany Company { get; set; }
    public decimal Height { get; set; }
    public decimal Width { get; set; }
    public virtual FIGstationeryType Template { get; set; }
    public bool DoubleSided { get; set; }
}

 public class FIGstationeryCategory
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal MaxZoom { get; set; }
    public ICollection<FIGstationeryType> StationeryItems { get; set; }
}

我一直在绕圈子,任何帮助将不胜感激。我还没走多远!第一行代码工作正常,这是我正在努力的第二行。

var listOfItems = db.StationeryTypes
            .Where(C => C.Company.Users.Any(u => u.UserId == WebSecurity.CurrentUserId))
            .ToList();

       var categoryList = db.StationeryCategories
           .Where(listOfItems

任何帮助将非常感激。

4

2 回答 2

1
var listOfCategories = 
(from o in listOfItems select o.Category.Name).Distinct().ToList();

想了想(昨晚看了3个小时的linq视频),发现listOfItems已经包含了所有使用的类别,所以我不需要查询和比较两个表,只需绘制相关的我已经拥有的列表中的值。

于 2013-05-29T13:18:20.897 回答
0

我不完全确定你想如何选择你的类别,但这可能有点:

var categoryList = db.StationeryCategories
   .*Select*(x => listOfItems.Where(y => y.Category == x)
   .FirstOrDefault());

你能澄清一下这是否是你所追求的标准吗?

于 2013-05-28T16:02:16.073 回答