无法在实体框架中进行排序
本文关键字:排序 框架 实体 | 更新日期: 2023-09-27 18:02:19
我刚刚开始自学c#和ASP——我目前正在开发一个简单的WebApp来维护一个列表,并确保条目是最新的。
我已经使用了实体框架的数据库第一种方法,以获得所有链接及其加载&编辑数据没有问题。
我已经尝试添加排序&搜索;我已经成功地完成了,但我不得不回溯我的一些工作,现在排序/搜索功能不工作。我想我知道问题在哪里,但不知道如何解决!!
昨天我花了几个小时试图修理它,但没有运气,所以我想我应该在这里试试运气。
Models文件结构:模型>记录器。日志记录器。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; }
}
带名字的edmx图图片
控制器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());
}
我有一种强烈的预感,问题出在这一点上:
var loggerz = from s in db.Logger_Entity
select s;
任何帮助都非常感谢!
这是一个愚蠢的错误。您正在返回原始数据库列表,而没有过滤或排序:
return View(db.Logger_Entity.ToList());
应为:
return View(loggerz.ToList());