Мне нужна помощь экспертов по сервисному стеку относительно запроса на обновление сервисного стека с объединением нескольких таблиц на С#. Я погуглил и просмотрел все связанные документы и сайт, но не смог найти достаточно подробностей относительно запроса «Обновление с присоединением».
Я хотел бы обновить таблицу One, объединив три разные таблицы и предложение where. Я пробовал все способы с помощью Entity Framework, но не смог этого сделать. Я могу сделать это с помощью Db.ExecuteSql(SqlQuery), но я хотел бы сделать это с помощью Entity Framework. Мой запрос, как показано ниже.
Я хочу обновить соединение UpdateStatus таблицы HeartRate с таблицами PatientDetails, DeviceSession, PatientSession и HeartRate, а условием where является HeartRate.timestamp = ‘@starttime’ и PatientId = ‘@PatientId’
SQLQuery =
UPDATE HeartRate SET UpdateStatus = 1
WHERE HeartRateID IN ( SELECT hr.HeartRateID
FROM PatientDetails pd join PatientSession ps on pd.PatientDetailsId = ps.ByPatientId
join DeviceSession ds on ps.PatientSessionId = ds.ByPatientSessionId join HeartRate hr on ds.DeviceSessionID = hr.ByDevSessionID
WHERE
pd.PatientId = '@PatientId'
AND
hr.Timestamp = '@starttime'
order by hr.Timestamp Asc )
Мне нужно что-то вроде ниже (это неправильно и неполное).
Db.UpdateOnly(
new HeartRate { UpdateStatus = 1 },
ps => new { ps.UpdateStatus },
.SqlJoinBuilder<DeviceSession, PatientSession>((ds2, ps) => ds2.ByPatientSessionId == ps.PatientSessionId)
.Join<PatientSession, PatientDetails>((ps2, pd) => ps2.ByPatientId == pd.PatientDetailsId)
.Where<HeartRate, PatientDetails>((lthr2, pd2) => (lthr2.Timestamp == @starttime) && pd2.PatientId == PatientId)
.OrderBy(lthr2 => lthr2.Timestamp));
Пожалуйста, помогите мне.
Спасибо
Сушил