Busque en el proyecto MoreLinq (en github):http://morelinq.github.io
Allí, Lead y Lag se implementan como extensiones:
public static IEnumerable<TResult> Lag<TSource, TResult>(
this IEnumerable<TSource> source,
int offset,
TSource defaultLagValue,
Func<TSource, TSource, TResult> resultSelector
)
referencia:https://morelinq.github.io/2.0/ref /api/html/M_MoreLinq_MoreEnumerable_Lag__2_1.htm
EDITAR:Esto es solo Linq to Objects. Entonces, cuando se aplica a una fuente de datos SQL, obtiene todas las filas y luego realiza el cálculo fuera de la base de datos. Esto no es lo que espera el OP.
Los resultados de la investigación dicen "no , no es posible" para los elementos 1,2,3 y 4:
LEAD
yLAG
surgió en SQL Server 2012, pero la versión más alta de SQL Server a la que se dirige la versión más reciente de Linq to SQL (Framework 4.6.1) con código específico de la versión es 2008:http://referencesource.microsoft.com/#System.Data.Linq/SqlClient/SqlProvider.cs,2fac3481a656764b- Entity framework:no, lo siento.
- MSDN sugiere que las funciones de secuencia generalmente tienen soporte limitado:https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/bb882656(v=vs.100)
- No hay indicios de que
SqlFunctions
proporcionaría Lead, Lag o algo similar:https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.sqlclient.sqlfunctions?&view=netframework-4.8