LINQ - 如何创建不同项的列表

时间:2017-06-14 17:52:25

标签: c# linq

如何创建一个LINQ查询,该查询将从Workpacks表返回一个新的不同Operators列表(DB未规范化)。我收到了这个查询,但我不知道如何正确使用DISTINCT,以便SQL服务器不返回重复值

Instance.CriteriaOperatorList = 
    (from v in context.Workpacks
     select new FilterCriteriaItem()
     {
         GUID = Guid.NewGuid(),
         Name = v.Operator,
     }).ToList();

2 个答案:

答案 0 :(得分:2)

您希望从Operator获取不同的Workpack,然后获取这些Instance.CriteriaOperatorList = context.Workpacks // Only request the Operator names .Select(w => w.Operator) // But just request the distinct names .Distinct() // Then select into your DTO. .Select(o => new FilterCriteriaItem { GUID = Guid.NewGuid(), Name = o // o is the Operator from Workpack }) .ToList(); 。最简单的方法是不使用SQL LINQ语法。

// Check if it is supported
if (ApplicationView.GetForCurrentView().IsViewModeSupported(ApplicationViewMode.CompactOverlay))
{
  // Supported
}
else
{
  // Not supported
}

答案 1 :(得分:0)

在.To list()。

之前使用.Distinct()