3 行 (現在のレコード、前のレコード、および現在のレコードに関連する次のレコード) を返す LINQ クエリを実行する必要があります。ProductID は、自動生成された ID 列です。
現在、これを Union LINQ ステートメントで行っていますが、同じタスクを達成するためのより良い方法またはより効率的な方法があるかどうかはわかりません。
これが私が得たものです:
var ProductID = 10;
var Results = (from p in DB.Products
where p.ProductID == ProductID - 1 //Previous record.
select new Product
{
ProductID = p.ProductID,
ProductTitle = p.ProductTitle,
Views = p.Views,
}).Union(from p in DB.Products
where p.ProductID == ProductID //Current record
select new Product
{
ProductID = p.ProductID,
ProductTitle = p.ProductTitle,
Views = p.Views,
}).Union(from p in DB.Products
where p.ProductID == ProductID + 1 //Next record.
select new Product
{
ProductID = p.ProductID,
ProductTitle = p.ProductTitle,
Views = p.Views,
});
これにより、ProductID 9、ProductID 10、ProductID 11 の 3 行が返されます。