У меня есть две модели: Unit и Building. В Unit есть поле BuildingId (внешний ключ), которое привязано к объекту Building. Я пишу представление коллекции для отображения всех единиц. У меня также есть метод службы для получения объекта здания на основе его идентификатора. Я могу отобразить BuildingId для каждого модуля в метке в представлении коллекции. Однако я не знаю, как вместо этого отобразить Building.Name.
Я не уверен, что смотрю в правильном направлении, потому что, кажется, есть простой способ сделать это. В настоящее время я рассматриваю возможность расширения класса меток и выполнения там настроек?
Чтобы отобразить Building.Name вместо BuildingId для каждой единицы в представлении коллекции, вам необходимо получить объект Building, используя BuildingId, а затем отобразить Building.Name.
Образец кода:
public class Unit
{
public int Id { get; set; }
public int BuildingId { get; set; }
public string BuildingName { get; set; } // Add this property
// Other properties...
}
При получении единиц:
List<Unit> units = // Your code to fetch all units
foreach (var unit in units)
{
var building = _buildingService.GetBuildingById(unit.BuildingId);
unit.BuildingName = building?.Name; // Set the building name
}
Из строительной службы:
public Building GetBuildingById(int id)
{
// Your implementation to fetch a building by its id
return BuildingList.FirstOrDefault(a=>a.BuildingId == id);
}
Спасибо за комментарий. Я стараюсь избегать добавления свойства в класс Unit только для этой цели. После некоторых исследований я в конечном итоге использовал преобразователь значений. Для этого я создал собственный преобразователь значений. Поскольку я не упомянул о своих предпочтениях. Я отмечу это как ответ.