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 クエリは「読みにくく」なります。