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に等しく、バージョンがDBで最大の数値であるかどうかを知る必要がある場合、どうすれば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();
}