2010-12-27 14 views

Respuesta

158

El uso de la expresión lambda ..

var result = EFContext.TestAddresses.Select(m => m.Name).Distinct(); 
36

Prueba esto:

var results = (from ta in context.TestAddresses 
       select ta.Name).Distinct(); 

Esto le dará una IEnumerable<string> - puede llamar .ToList() en él para obtener un List<string>.

+0

De esta manera se mejora el rendimiento de la agrupación. Distinto: Tiempos de ejecución de SQL Server: Tiempo de CPU = 0 ms, tiempo transcurrido = 50 ms. Agrupamiento: Tiempos de ejecución de SQL Server: Tiempo de CPU = 0 ms, tiempo transcurrido = 112 ms. –

3

Entidad-Marco Seleccione nombre distinto:

Supongamos que si usted está usando Vistas en el que se están utilizando varias tablas y desea aplique distinto en ese caso, primero debe almacenar el valor en la variable &, luego puede aplicar Distinct en esa variable como esta ....

public List<Item_Img_Sal_VIEW> GetItemDescription(int ItemNo) 
     { 
      var Result= db.Item_Img_Sal_VIEW.Where(p => p.ItemID == ItemNo).ToList(); 
      return Result.Distinct().ToList(); 
     } 

O puede probar este ejemplo simple

Public Function GetUniqueLocation() As List(Of Integer) 
      Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList() 
End Function 
+0

No funciona su código @ayaat –

+0

Puede copiar/escribir su código aquí –

+0

Hola, cuando hago esto en una tabla, me sale un error -> ** no puedo convertir la cadena a IEnumreable .. ** ¿me puede mostrar cómo obtener una lista para que pueda completar una lista desplegable, con valores distintos de una columna de tabla que contiene NVARCHAR en EF DB. – aggie

14

La forma en que @alliswell mostró es completamente válido, y no hay otra manera! :)

var result = EFContext.TestAddresses 
    .GroupBy(ta => ta.Name) 
    .Select(ta => ta.Key); 

Espero que sea útil para alguien.

+0

esto fue muy útil para mí ya que necesitaba seleccionar varias columnas – mamashare

3
product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct(); 

En este ejemplo hay CategoryId duplicado y sin CategoryName espero que esto le ayudará a

0

Entidad-Marco Seleccionar nombre distinto:

Supongamos que si usted está quiere todos los primeros datos de la columna particular de cada grupo;

var data = objDb.TableName.GroupBy(dt => dt.ColumnName).Select(dt => new { dt.Key }).ToList(); 

      foreach (var item in data) 
      { 
       var data2= objDb.TableName.Where(dt=>dt.ColumnName==item.Key).Select(dt=>new {dt.SelectYourColumn}).Distinct().FirstOrDefault(); 

       //Eg. 
       { 
         ListBox1.Items.Add(data2.ColumnName);      
       } 

      } 
2

uso Seleccionar(). Distinto()

por ejemplo

DBContext db = new DBContext(); 
var data= db.User_Food_UserIntakeFood .Where(f => f.PersonID == PersonID) .Select(c => new { c.DateOfIntake, c.TimeOfIntake }).Distinct(); 
Cuestiones relacionadas