我有以下實體(爲簡潔起見縮減);實體框架代碼最高效的Linq查詢
public class Job {
Hospital Hospital { get; set; }
Status Status { get; set; }
}
public class User {
string UserId { get; set; }
string UserName { get; set; }
}
public class UserHospital {
User User { get; set;}
Hospital Hospital { get; set; }
}
public class Hospital {
int HospitalId { get; set; }
}
現在我想獲得一個特定狀態下所有工作的列表,其中用戶與工作有UserHospital關係。
隨着波蘇斯鋪設了我假設我會得到所有的UserHospital關係,然後建立
var userHospitals = context.Where<UserHospital>(x => x.User.UserName == "username").ToList();
,然後遍歷並建立從工作的角度列表的方式嗎?
var jobs = new List<Job>();
foreach(var userHospital in userHospitals)
jobs.AddRange(context.Where<Job>(x => x.Hospital.Id == userHospital.Hospital.Id).ToList())
return jobs;
有沒有更好的方法來做到這一點?
所以,用戶應該參考一組醫院,醫院 - 給用戶組 – tym32167
正確,然後工作有一個醫院的參考。 –
這可能只是我,但這個數據庫結構似乎有點奇怪。如果你想將用戶連接到工作崗位,爲什麼你要通過醫院?我想你可能想重新考慮你的數據庫結構 – RandomStranger