Я использую asp. net core EF. У меня две модели. [1] первый - это сотрудник, который наследует IdentityUser и расширяет его. [2] второй - DocumentIn, у которого есть ключ сотрудника
примечание: они не связаны
проблема: Мне нужно просмотреть весь DocumentIn, но с именами сотрудников, а не с ключами
следующие две мои модели соответственно (с комментариями, включенными для демонстрации первичных и внешних ключей)
Сотрудник, наследующий от IdentityUser
public class Employee: IdentityUser
{
// this primary key (Id) is identified as a foreign key twice in the next model (Document In)
// but with different names
// the names are [EmpFrom] and [EmpTo]
[Key]
public override string Id { get => base.Id; set => base.Id = value; }
//-------------------------------------------------------------------------------------------
[EmailAddress]
public override string Email { get => base.Email; set => base.Email = value; }
public string HomePhone { get; set; }
public string EmpName { get; set; }
public int? DivID { get; set; }
[ForeignKey("DivID")]
public Division division { get; set; }
public string Password { get; set; }
[NotMapped]
public string ConfirmPassword { get; set; }
}
DocumentIn
public class DocumentIn
{
[Key]
public int DocInID { get; set; }
public string DocName { get; set; }
public string Notes { get; set; }
public string BarCode { get; set; }
public DateTime ActionDate { get; set; }
public DateTime DueDate { get; set; }
// here I use these names to contains employees Id which is GUID of IdentityUser
public string EmpFrom { get; set; }
public string EmpTo { get; set; }
}
Важно:
Я использую EF концепция, DbContext для получения DocumentIn однако я использую UserManager, с другой стороны, чтобы получить сотрудников
, как показано ниже
gitting DocumentIn с использованием _context
// _TableView is a ViewModel which has this attripute
// public List<DocumentIn> DocumentsInList { get; set; }
_TableView.DocumentsInList = await _context.DocumentIn.Where(bla bla bla).ToListAsync();
создание сотрудников с помощью UserManager
List<Employee> Emps = await userManager.Users.ToListAsync();
Теперь мне нужно включить Emp с запросом DocumentsInList, чтобы читать все документы с именами сотрудников, а не с их идентификаторами. Другими словами, мне нужно просмотреть EmpName из Employee, а не EmpFrom и EmpTo в приведенном выше запросе LINQ.
Я уже сделал следующий запрос LINQ, но я не знаю, как заменить EmpFrom и EmpTo из DocumentIn на EmpName от сотрудника
// -------- all users
List<Employee> Emps = await userManager.Users.ToListAsync();
_TableView.DocumentsInList = await _context.DocumentIn.Include(e => Emps).ToListAsync();