私は患者のスケジュールを記録するスケジュールテーブルを持っています。私は現在の(今日のスケジュール)、前回のスケジュール(前回の予定)、次のスケジュールを取得したいと思います。前と次のLinqの現在、前、次のスケジュールを取得
Id uniqueindentifier
PatientId uniqueindentifier
Start datetime
End datetime
Remarks varchar
現在は、スタートの列に基づいて行われますスケジュール
のようなスケジュール表の構造があります。開始日には任意の日付を指定できます(連続ではありません)。
私のアプローチ:
db.DbContext.Schedules.Where(i => DbFunctions.TruncateTime(i.Start) == today && i.PatientId==patientId).Take(1)
.Union(ctx.DbContext.Schedules.Where(i => DbFunctions.TruncateTime(i.Start) < today && i.PatientId == patientId).OrderByDescending(d => d.Start).Take(1))
.Union(ctx.DbContext.Schedules.Where(i => DbFunctions.TruncateTime(i.Start) > today && i.PatientId == patientId).OrderBy(d => d.Start).Take(1))
私はそれが効率的であるか、より良いオプションが利用可能であるかどうかを知りたいです。
あなたは使用してどのようなORM? –
これまでに何を試しましたか? – Pleun
エンティティフレームワーク6.0 – Nitesh