楼上的结果是时间越大的越靠前了吧。
假设你的实体名为A,那么这样写就可以:
var s=A.OrderBy(f=>Math.Abs(DateRime.Now.Subtract(f.EndTime).TotalMilliseconds));
如果不需要已经结束的数据,那么应该这样写:
var s=A.Where(f=>f.EndTime>DateTime.Now).OrderBy(f=>f.EndTime.Subtract(DateTime.Now));
from list in List
orderby link.EndTime descending
select list