linq クエリで取得された他のいくつかの「列」に応じてステータスを設定するためのベスト プラクティスは何でしょうか。
  var result = (from q in query
                select new Item
                         {
                           ApprovedDate = q.ApprovedDate,
                           CreatedDate = q.CreatedDate,
                           DeclinedDate = q.DeclinedDate,
                           Status = 0
                         });
ステータスを 0、1、2 のいずれかに設定したいと思います。
(ApprovedDate == null and DeclinedDate == null) --> 0
(ApprovedDate != null and DeclinedDate == null) --> 1
(DeclinedDate != null) --> 3
したがって、おそらく次のようなものです:
  var result = (from q in query
                select new Item
                         {
                           ApprovedDate = q.ApprovedDate,
                           CreatedDate = q.CreatedDate,
                           DeclinedDate = q.DeclinedDate,
                           Status = (q.CreatedDate == null && q.DeclinedDate == null) ? 0 : (q.ApprovedDate != null && q.DeclinedDate == null) ? 1 : 2
                         });
ステータスの組み合わせをさらに追加する可能性があるので、これを linq select クエリ、リポジトリ オブジェクトで試してみる必要があります。または、後でコントローラーで .ToList() を実行し、リストを foreach して設定します正しいステータスコード?
ステータスコードが 3 つ以上あると、linq クエリは「読みにくく」なります。