當我嘗試獲取屬於它們的部門名稱的所有用戶時,使用ASP.Net MVC我不斷收到此錯誤:錯誤:「指定的LINQ表達式包含對與不同上下文關聯的查詢的引用」
DepartmentName = db.Departments.Where(d => d.DepartmentId == u.DepartmentId).Select(n =>n.DepartmentName).ToString()
從我在谷歌搜索,我想我必須執行兩個查詢,但我不知道該怎麼做。 這是我的ViewModel
public class UserListViewModel
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string RoleName { get; set; }
public string DepartmentName { get; set; }
}
和行動
public ActionResult Users()
{
List<UserListViewModel> model = new List<UserListViewModel>();
model = UserManager.Users.Select(u => new UserListViewModel
{
Id = u.Id,
FirstName = u.FirstName,
LastName = u.LastName,
Email = u.Email,
DepartmentName = db.Departments.Where(d => d.DepartmentId == u.DepartmentId).Select(n =>n.DepartmentName).ToString()
}).ToList();
預先感謝您!
'UserManager'和'db'是兩個不同的上下文。嘗試移動查詢中的「DepartmentName」選項以獲取用戶 - 只需在擁有用戶標識後獲取。 – Dido
@Dido感謝您的迴應,但我怎樣才能獲取用戶和部門分開,你能告訴我嗎?我嘗試之前像這樣DepartmentName = db.Departments.Where(d => d.DepartmentId == ?????)。Select(n => n.DepartmentName).ToString(),但d => d.DepartmentId with什麼? –