tipos tipo objects initialize inicializar anonymoustype anonimos c# linq-to-sql

objects - tipo dynamic c#



¿LINQ clasificando tipos anónimos? (4)

Si entendí tu pregunta correctamente, quieres hacer esto:

from e in linq0 order by (e.User.FirstName + " " + e.User.LastName).Trim()) descending select new { Id = e.Id, CommentText = e.CommentText, UserId = e.UserId, User = (e.User.FirstName + " " + e.User.LastName).Trim()), Date = string.Format("{0:d}", e.Date) }

¿Cómo hago la clasificación al generar tipos anónimos en linq a sql?

Ex:

from e in linq0 order by User descending /* ??? */ select new { Id = e.Id, CommentText = e.CommentText, UserId = e.UserId, User = (e.User.FirstName + " " + e.User.LastName).Trim()), Date = string.Format("{0:d}", e.Date) }


¿Esto funcionaría, como una forma de evitar que Jon seleccione ...?

from e in linq0 let comment = new { Id = e.Id, CommentText = e.CommentText, UserId = e.UserId, User = (e.User.FirstName + " " + e.User.LastName).Trim()), Date = string.Format("{0:d}", e.Date) } orderby comment.User descending select comment


Si está utilizando LINQ to Objects, yo haría esto:

var query = from e in linq0 select new { Id = e.Id, CommentText = e.CommentText, UserId = e.UserId, User = (e.User.FirstName + " " + e.User.LastName).Trim()), Date = e.Date.ToString("d") } into anon orderby anon.User descending select anon;

De esta forma, la concatenación de cadenas solo tiene que hacerse una vez.

No sé lo que eso haría en LINQ to SQL ...


Voy a obtener una insignia de nigromante para esta respuesta, pero sigo creyendo que vale la pena mostrar este fragmento.

var records = await (from s in db.S join l in db.L on s.LId equals l.Id where (...) select new { S = s, Type = l.MyType } ).ToListAsync(); //Data is retrieved from database by now. //OrderBy below is LINQ to Objects, not LINQ to SQL if (sortbyABC) { //Sort A->B->C records.OrderBy(sl => sl.Type, new ABC()); } else { //Sort B->A->C records.OrderBy(sl => sl.Type, new BAC()); }

ABC y BAC implementan IComparer<MyType> .