Ich fange gerade erst an, mir C# und ASP beizubringen - Ich entwickle gerade eine einfache WebApp bei der Arbeit, um eine Liste zu verwalten und sicherzustellen, dass die Einträge aktuell sind.Sortierung funktioniert nicht in Entity Framework
Ich habe den ersten Ansatz der Datenbank mit Entity Framework verwendet, um alles zu verknüpfen und seine Lade & Bearbeitung von Daten ohne ein Problem.
Ich habe versucht, Sortieren & Suche hinzuzufügen; was ich erfolgreich gemacht hatte, aber ich musste etwas von meiner Arbeit zurückverfolgen und jetzt funktioniert die Sortier-/Suchfunktionalität nicht. Ich denke, ich weiß, wo das Problem ist, aber keine Ahnung, wie zu beheben !!
Gestern verbrachte Stunden damit, es ohne Glück zu reparieren, also dachte ich würde mein Glück hier versuchen.
Models Dateistruktur: Modelle> Loggers.edmx> Loggers.tt> Logger_Name.cs.
public partial class Logger_Name
{
public int Serial { get; set; }
public string Friendly_Name { get; set; }
public string Site { get; set; }
public string tSiteCode { get; set; }
public string aSiteCode { get; set; }
}
picture of edmx diagram with names
Controller
public class LoggersController : Controller
{
private REDHHP_DEVEntities db = new REDHHP_DEVEntities();
// GET: Loggers
public ActionResult Index(string sortOrder, string searchString)
{
ViewBag.NameSortParm = sortOrder == "friendly_name_asc" ? "friendly_name_desc" : "friendly_name_asc";
ViewBag.SiteSortParm = sortOrder == "site_asc" ? "site_desc" : "site_asc";
ViewBag.CodeSortParm = sortOrder == "site_code_asc" ? "site_code_desc" : "site_code_asc";
ViewBag.SerialSortParm = sortOrder == "serial_asc" ? "serial_desc" : "serial_asc";
var loggerz = from s in db.Logger_Entity
select s;
if (!String.IsNullOrEmpty(searchString))
{
loggerz = loggerz.Where(s => s.Friendly_Name.Contains(searchString)
|| s.Site.Contains(searchString)
|| s.tSiteCode.Contains(searchString));
}
switch (sortOrder)
{
case "site_desc":
loggerz = loggerz.OrderByDescending(s => s.Site);
break;
case "friendly_name_desc":
loggerz = loggerz.OrderByDescending(s => s.Friendly_Name);
break;
case "fite_code_desc":
loggerz = loggerz.OrderByDescending(s => s.tSiteCode);
break;
case "site_asc":
loggerz = loggerz.OrderBy(s => s.Site);
break;
case "friendly_name_asc":
loggerz = loggerz.OrderBy(s => s.Friendly_Name);
break;
case "site_code_asc":
loggerz = loggerz.OrderBy(s => s.tSiteCode);
break;
case "serial_desc":
loggerz = loggerz.OrderByDescending(s => s.Serial);
break;
case "serial_asc":
loggerz = loggerz.OrderBy(s => s.Serial);
break;
default:
loggerz = loggerz.OrderBy(s => s.Site);
break;
}
return View(db.Logger_Entity.ToList());
}
Ich habe ein starkes Gefühl, dass das Problem mit diesem Bit ist: ist
var loggerz = from s in db.Logger_Entity
select s;
Jede Hilfe sehr zu schätzen!
off-topic, aber einen Blick auf [System.Linq.Dynamic] (https nehmen: // www.nuget.org/packages/System.Linq.Dynamic/) –