Xem xét dự án MoreLinq (trên github): http://morelinq.github.io
Ở đó, Khách hàng tiềm năng và Độ trễ được triển khai dưới dạng phần mở rộng:
public static IEnumerable<TResult> Lag<TSource, TResult>(
this IEnumerable<TSource> source,
int offset,
TSource defaultLagValue,
Func<TSource, TSource, TResult> resultSelector
)
tham khảo: https://morelinq.github.io/2.0/ref /api/html/M_MoreLinq_MoreEnumerable_Lag__2_1.htm
CHỈNH SỬA:Đây chỉ là Linq to Objects. Vì vậy, khi được áp dụng cho một nguồn dữ liệu SQL, nó sẽ tìm nạp tất cả các hàng và sau đó thực hiện tính toán bên ngoài cơ sở dữ liệu. Đây không phải là những gì OP mong đợi.
Kết quả nghiên cứu cho biết " không , không thể "đối với các mục 1,2,3 và 4:
-
LEAD
vàLAG
xuất hiện trong SQL Server 2012, nhưng phiên bản cao nhất của máy chủ SQL mà phiên bản Linq to SQL mới nhất (Framework 4.6.1) nhắm mục tiêu với mã phiên bản cụ thể, là 2008: http://referencesource.microsoft.com/#System.Data.Linq/SqlClient/SqlProvider.cs,2fac3481a656764b - Khung pháp nhân:nope, xin lỗi.
- MSDN gợi ý rằng các hàm trình tự thường được hỗ trợ hạn chế: https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/bb882656 (v =vs.100)
- Không có gợi ý rằng
SqlFunctions
sẽ cung cấp Khách hàng tiềm năng, Độ trễ hoặc thứ gì đó tương tự: https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.sqlclient.sqlfunctions?&view=netframework-4.8