我正在尝试在 C# 中获取最新版本的程序。下面的代码是我能够让代码在我的控制器中运行而没有任何错误的唯一方法:
PList = PList.Where(x => x.PSP == LP && x.VERSION == "1.3");
问题是,除非我在每个新版本中都维护此代码并将代码中的代码更正为最新版本,否则它将无法正常工作。
所以我认为我可以使用max函数来获取最新版本,但它是 SQL DB 中的 varchar,我无法更改它,因为我无权访问更改类型。
我已经尝试了不同的方法来做到这一点,比如下面的例子,但没有运气。
PList = PList.Where(x => x.PSP == LP && x.VERSION.MAX());
运算符“&&”不能应用于“bool”和“char”类型的操作数
那么当我需要知道 PSP 是否等于 LP并且版本是数据库中的最高数字时,如何获得 Max 版本?感谢您的帮助!
更新
谢谢大家的出色回答,我可以看到他们中的一些人可能如何独立工作,但他们都没有使用我拥有的代码。我认为发布其余代码可能有助于更轻松地诊断问题,所以这里是其余代码。
public virtual ActionResult getAjaxP(string TP = null)
{
if (TP != null)
{
var PList = from x in db.iamp_mapping select x;
PList = PList.Where(x => x.PSP == TP);
return Json(PList.Select(x => new { x.PS }).Distinct().ToArray(), JsonRequestBehavior.AllowGet);
}
return View();
}