C# 按条件订购
我想得到顶部有“限制”的记录。 我的问题是:C# 按条件订购,c#,entity-framework,linq,C#,Entity Framework,Linq,我想得到顶部有“限制”的记录。 我的问题是: var records = (from entry in db.Table1 orderby entry.Always_Prohibited select new { RowID = entry
var records = (from entry in db.Table1
orderby entry.Always_Prohibited
select new
{
RowID = entry.RowID,
VehicleMake = entry.Make,
VehicleModel = entry.Model,
Restricted = (entry.Always_Prohibited == null || entry.Always_Prohibited == "False") ? "Restricted" : "Not Restricted"
}).ToList();
我尝试了Orderby,但它不起作用,因为entry.Always\u Probibited是一个字符串字段。
请建议我。如果只有两个值,只需按降序排列即可:
from entry in db.Table1
orderby entry.Always_Prohibited descending
如果有更多,请为字符串指定整数值:
from entry in db.Table1
orderby entry.Always_Prohibited=="A" ? 0 : entry.Always_Prohibited=="B" ? 1 : 2 // and so on
另外,字符串是在数据库中存储状态的一种非常糟糕的方式。您应该重新设计它,将其存储为定义良好的整数(最好在主查找表中作为外键,即强类型枚举)。用户然后在下面给出代码。这对你有帮助
var records = (from entry in db.Table1.AsQueryable();
orderby entry.Always_Prohibited
select new
{
RowID = entry.RowID,
VehicleMake = entry.Make,
VehicleModel = entry.Model,
Restricted = (entry.Always_Prohibited == null || entry.Always_Prohibited == "False") ? "Restricted" : "Not Restricted"
}).ToList();
可能重复的