Cómo hacer Seleccionar todo (*) en linq to sql

83

¿Cómo seleccionas todas las filas al hacer linq to sql?

Select * From TableA

Tanto en sintaxis de consulta como en sintaxis de método, por favor.

chobo2
fuente

Respuestas:

103
from row in TableA select row

O solo:

TableA

En la sintaxis del método, con otros operadores:

TableA.Where(row => row.IsInteresting) // no .Select(), returns the whole row.

Esencialmente, ya está seleccionando todas las columnas, la selección luego las transforma en las columnas que le interesan, por lo que incluso puede hacer cosas como:

from user in Users select user.LastName+", "+user.FirstName
Simon Buchan
fuente
Otro que me gusta hacer es .Take (int) para extraer todas las columnas para un número determinado de registros. Tales como TableA.Take (100)
brian s
¿Podría explicar por qué no necesita usarlo explícitamente from row in TableA.Rows? ¿Es porque Rowses la propiedad predeterminada? ¿Es eso una característica de LINQ o algo incorporado en otro lugar? Sólo curioso.
rory.ap
@roryap depende de su biblioteca de acceso a la base de datos, aquí estoy asumiendo LINQ to SQL, donde la tabla son las filas, ADO o lo que sea que pueda ser diferente.
Simon Buchan
69

¿Quiere seleccionar todas las filas o todas las columnas?

De cualquier forma, no es necesario que hagas nada.

El DataContext tiene una propiedad para cada tabla; simplemente puede usar esa propiedad para acceder a toda la tabla.

Por ejemplo:

foreach(var line in context.Orders) {
    //Do something
}
SLaks
fuente
1
Secundo esa pregunta. Esta es una respuesta mucho más útil que la seleccionada porque es más simple y responde más directamente a la pregunta del OP.
tandrewnichols
2
Esta respuesta merece ser la respuesta principal.
Arreglemos
Quizás algún día haya sido rechazado, porque esta respuesta tampoco es "universal", aunque satisface el OP. Para mí, cuando lo uso con EF, allOrders es DBSet y no IEnumerable, por lo que no puedo allOrders.Where () justo después de eso. Probablemente solo lo esté usando de manera incorrecta o me haya perdido algo, pero agregar un .Skip (0) ha hecho la magia para mí.
Charles Roberto Canato
24
using (MyDataContext dc = new MyDataContext())
{
    var rows = from myRow in dc.MyTable
               select myRow;
}

O

using (MyDataContext dc = new MyDataContext())
{
    var rows = dc.MyTable.Select(row => row);
}
Simón Fox
fuente
6
No hagas ninguno de estos. En cambio, simplemente escriba var rows = dc.MyTable.
SLaks
2
pidió sintaxis de consulta y sintaxis de método, así que eso es lo que le estoy dando.
Simon Fox
3
No le dé lo que pidió; dale lo que necesita. Obviamente, no entiende muy bien LINQ-to-SQL.
SLaks
No, todavía no entiendo muy bien LINQ-to-SQL. Todavía no tengo tiempo para leer libros sobre el tema, pero cuando necesito información, empiezo a buscar. Además, estoy esperando a que mejoren los marcos de Enity. Ya que prefiero aprender eso, ya que puede usar todas las bases de datos.
chobo2
2
Bastante justo, sin embargo, no hay nada de malo en ninguna de las soluciones que he proporcionado. Le brindan una buena base para comenzar en términos de construir una consulta de mayor complejidad.
Simon Fox
4

Si desea seleccionar todos los datos de la base de datos, puede probar esto: -

dbclassDataContext dc= new dbclassDataContext()
List<tableName> ObjectName= dc.tableName.ToList();

de lo contrario, puede intentar esto: -

var Registration = from reg in dcdc.GetTable<registration>() select reg;

y método Syntex: -

 var Registration = dc.registration.Select(reg => reg); 
Alegría
fuente
2
Dim q = From c In TableA
Select c.TableA

ObjectDumper.Write(q)
SattiS
fuente
1

Puede usar una consulta linq simple de la siguiente manera para seleccionar todos los registros de la tabla sql

var qry = ent.tableName.Select (x => x) .ToList ();

Anaga
fuente
1

Suponiendo TableAcomo una entidad de tabla TableAy TableADBEntitiescomo clase de entidad DB,

  1. Método LINQ
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
   result = context.TableA.Select(s => s);
}
  1. Consulta LINQ-to-SQL
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
   var qry = from s in context.TableA
               select s;
   result = qry.Select(s => s);
}

El SQL nativo también se puede utilizar como:

  1. SQL nativo
IList<TableA> resultList;
using (var context = new TableADBEntities())
{
   resultList = context.TableA.SqlQuery("Select * from dbo.TableA").ToList();
}

Nota: dboes un propietario de esquema predeterminado en SQL Server. Se puede construir una SELECTconsulta SQL según la base de datos en el contexto.

Dinesh Mandal
fuente
0

¿Por qué no usas

DbTestDataContext obj = new DbTestDataContext();
var q =from a in obj.GetTable<TableName>() select a;

Esto es simple.

Soy leyenda
fuente
0

A menudo necesito recuperar "todas" las columnas, excepto algunas. entonces Select (x => x) no funciona para mí.

El editor de LINQPad puede expandirse automáticamente * a todas las columnas.

ingrese la descripción de la imagen aquí

después de seleccionar '* todo', LINQPad se expande *, luego puedo eliminar las columnas no necesarias.

ingrese la descripción de la imagen aquí

Rm558
fuente