1. У вас "несколько сотрудников которые привязаны к одному животному" не соответствует вашему же коду. У ваших животных только 1 сотрудник. У вас связь 1 ко многим. Для "несколько сотрудников которые привязаны к одному животному" нужно "многие-ко-многим".
2. "Через модели, контролеры или представления?". Через всё. Контроллер отдает на View модель, которая рендерится во View.
3. Решение:
3.1 Сначала сделать связь многие-ко-многим:
public class Animal
{
[Key]
public int AnimalId { get; set; }
public string Name { get; set; }
public string Type { get; set; }
public Eat Eats { get; set; }
public virtual ICollection<Staff> { get; set; }
}
3.2. Использовать это в коде:
//Метод контроллера, который вызывается при переходе на страницу. (example: localhost/Home/ShowStaff/2959)
public async Task<IActionResult> ShowStaff(int animalId)
{
var result = await context.Animals.Include(x => x.Staff).FirstOrDefault(x => x.AnimalId == animalId); //Получаем всех сотрудников для животного
return View(result); //отдаем результат во view
}