visual studio que online framework conexion linq linq-to-sql

studio - Cómo seleccionar los valores de fecha Mín. Y Máx. En Consulta Linq



linqpad sql to linq (3)

Esto debería funcionar para ti

//Retrieve Minimum Date var MinDate = (from d in dataRows select d.Date).Min(); //Retrieve Maximum Date var MaxDate = (from d in dataRows select d.Date).Max();

(De here )

Me estoy moviendo de SQL a Linq y necesito ayuda. Estoy probando tanto Linq-to-SQL como Linq-to-Entities. Quiero probar ambos para decidir cuál me conviene más. Tu ayuda es apreciada. Gracias

¿Cuál es la sintaxis correcta (en vb.net si es posible) para seleccionar el valor mínimo de fecha de una tabla?

Dim mydata As New DataClassesDataContext Dim myresult = From cv In mydata.T1s Select cv.DATE1, cv.Date2, cv.Datex myresult=Dump()

Lo intenté, intenté usar

Select amin=cv.DATE1.Min(), amax=cv.Date1.Max(), bmin=cv.Date2.Min(), etc....

está dando este error ''Min'' is not a member of ''Date'' .

Los datos sobre los que quiero obtener el mínimo y el máximo están a continuación:

IOrderedQueryable<VB$AnonymousType_0<DateTime,DateTime>> (16 items) Date1 Date2 17/Oct/09 12:00:00 AM 23/Oct/09 12:00:00 AM 10/Jan/09 12:00:00 AM 15/Feb/09 12:00:00 AM 27/Mar/09 12:00:00 AM 27/Mar/09 12:00:00 AM 30/May/09 12:00:00 AM 30/May/09 12:00:00 AM 25/Jan/09 12:00:00 AM 25/Mar/09 12:00:00 AM 01/Nov/09 12:00:00 AM 01/Nov/09 12:00:00 AM 21/Feb/09 12:00:00 AM 04/Mar/09 12:00:00 AM 02/Mar/09 12:00:00 AM 09/Mar/09 12:00:00 AM 07/Jul/09 12:00:00 AM 07/Jul/09 12:00:00 AM 27/Sep/09 12:00:00 AM 27/Sep/09 12:00:00 AM 05/Nov/09 12:00:00 AM 05/Nov/09 12:00:00 AM 15/Apr/09 12:00:00 AM 15/Apr/09 12:00:00 AM 08/Jun/09 12:00:00 AM 08/Jun/09 12:00:00 AM 07/Jul/09 12:00:00 AM 07/Jul/09 12:00:00 AM 30/Jul/09 12:00:00 AM 30/Jul/09 12:00:00 AM 04/Nov/09 12:00:00 AM 04/Nov/09 12:00:00 AM

Ahora resuelto, pero esta no es la solución perfecta, parece que necesitaba hacer una consulta separada para cada columna que requiere una función de agregación:

Sub Main Dim mm = (From cv In T1s Select Datez = (cv.Date1)).Min() Dim mm1 = (From cv In T1s Select Datez = (cv.Date1)).Max() Dim mm2 = (From cv In T1s Select Datez = (Date2)).Min() Dim mm3 = (From cv In T1s Select Datez = (Date2)).Max() mm.dump() mm1.dump() mm2.dump() mm3.dump() End Sub

Los resultados están abajo

10/Jan/09 12:00:00 AM 05/Nov/09 12:00:00 AM 15/Feb/09 12:00:00 AM 05/Nov/09 12:00:00 AM


Si está buscando la fecha más antigua (valor mínimo), debe ordenar y luego tomar el primer artículo devuelto. Perdón por el C #:

var min = myData.OrderBy( cv => cv.Date1 ).First();

Lo anterior devolverá el objeto completo. Si solo quieres que te devuelvan la fecha:

var min = myData.Min( cv => cv.Date1 );

Con respecto a qué dirección tomar, re: Linq a Sql vs Linq a Entidades, realmente no hay mucha opción en estos días. Linq a Sql ya no se está desarrollando; Linq to Entities (Entity Framework) es la ruta recomendada por Microsoft en estos días.

De Microsoft Entity Framework 4 en acción (versión MEAP) por Manning Press:

¿Y el futuro de LINQ to SQL?

No es un secreto que LINQ to SQL está incluido en Framework 4.0 por razones de compatibilidad. Microsoft ha declarado claramente que Entity Framework es la tecnología recomendada para el acceso a los datos. En el futuro, se mejorará mucho y se integrará estrechamente con otras tecnologías, mientras que LINQ to SQL solo se mantendrá y evolucionará poco.


dim mydate = from cv in mydata.t1s select cv.date1 asc datetime mindata = mydate[0];