Domanda

Come faccio a fare questo

SELECT  CEILING(COUNT(*) / 10) NumberOfPages
 FROM  MyTable

in LINQ to SQL?

È stato utile?

Soluzione

Molti metodi di .NET sono convertiti a funzioni di SQL Server, come ad esempio la maggior parte dei metodi della classe Math e la classe String. Ma ci sono alcuni avvertimenti .

hanno anche uno sguardo al SqlMethods classe , che espone la funzione aggiuntiva di SQL Server che non dispone di un .NET equivalente.

Ma voi non hanno nemmeno bisogno di nulla di tutto ciò nel vostro caso:

int numberOfPages;

using (var db = new MyDBDataContext())
{
   numberOfPages = (int)Math.Ceiling(db.Books.Count() / 10.0);
}

Altri suggerimenti

non usate SOFFITTO SQL, si utilizza soffitto .NET (Math.Ceiling) nella query LINQ.

Non credo che questo sia possibile. Una possibile soluzione sarebbe quella di ottenere il numero totale e quindi capire in NET. Come di seguito:

dove query è IQueryable

  var itemsPerPage = 10; 
  var currentPage = 0; 
  var totalResults = query.Count(); 
  var myPagedResults = query.Skip(currentPage).Take(itemsPerPage);
  var totalPages = (int)Math.Ceiling((double)totalResults / (double)pageSize);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top