Linq 获取基于单列的完整行

Linq 获取基于单列的完整行,linq,entity-framework,linq-to-sql,lambda,linq-to-entities,Linq,Entity Framework,Linq To Sql,Lambda,Linq To Entities,实际上我想得到完整的表,但它应该基于Doc\u Type==distinct 意味着它应该只从具有唯一Doc\u Type的表中选择记录。我尝试了以下方法,但它返回了一列到tolist()中,但我想得到完整的表。我怎么做 var data = DB.tblDocumentTypes.Select(m => m.Doc_Type).Distinct().ToList(); 您可以使用GroupBy var data = DB.tblDocumentTypes.GroupBy(m =>

实际上我想得到完整的表,但它应该基于
Doc\u Type==distinct

意味着它应该只从具有唯一
Doc\u Type
的表中选择记录。我尝试了以下方法,但它返回了一列到
tolist()
中,但我想得到完整的表。我怎么做

var data = DB.tblDocumentTypes.Select(m => m.Doc_Type).Distinct().ToList();

您可以使用
GroupBy

 var data = DB.tblDocumentTypes.GroupBy(m => m.Doc_Type).Select(x => x.First());

你能解释一下背后的逻辑吗?我将感谢您。您首先按
文档类型对所有记录进行分组,然后从每组中获取第一项。您在上述查询中使用的m和x之间是否有差异?我可以在两个表达式中都使用m吗?@Sweetie no,没有区别。您可以在这两种语言中使用
m
x
。它们只是代表您的记录和组的符号。非常感谢您,先生。