Veja o projeto MoreLinq (no github):http://morelinq.github.io
Lá, Lead e Lag são implementados como extensões:
public static IEnumerable<TResult> Lag<TSource, TResult>(
this IEnumerable<TSource> source,
int offset,
TSource defaultLagValue,
Func<TSource, TSource, TResult> resultSelector
)
referência:https://morelinq.github.io/2.0/ref /api/html/M_MoreLinq_MoreEnumerable_Lag__2_1.htm
EDIT:Este é apenas Linq to Objects. Portanto, quando aplicado a uma fonte de dados SQL, ele buscaria todas as linhas e faria o cálculo fora do banco de dados. Não é isso que o OP espera.
Os resultados da pesquisa dizem "não , não é possível" para os itens 1,2,3 e 4:
LEAD
eLAG
surgiu no SQL Server 2012, mas a versão mais alta do SQL Server que a versão mais recente do Linq to SQL (Framework 4.6.1) visa com código específico da versão é 2008:http://referencesource.microsoft.com/#System.Data.Linq/SqlClient/SqlProvider.cs,2fac3481a656764b- Estrutura de entidade:não, desculpe.
- MSDN sugere que as funções de sequência geralmente têm suporte limitado:https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/bb882656(v=vs.100)
- Não há indícios de que
SqlFunctions
forneceria Lead, Lag ou algo semelhante:https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.sqlclient.sqlfunctions?&view=netframework-4.8