У меня есть 2 таблицы:Лучший способ получить связанный объект объекты
Таблица 1 называется тип имеет идентификатор и имя
Таблица 2 называется подтип имеет свой идентификатор, имя и TypeID
TypeID является ссылкой на таблицу 1, и создается внешний ключ.
Мои объекты:
public class BType
{
[HiddenInput(DisplayValue = false)]
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Naam is verplicht")]
public string Naam { get; set; }
}
и
public class SubType
{
[HiddenInput(DisplayValue = false)]
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Naam is verplicht")]
public string Naam { get; set; }
[Required(ErrorMessage = "Type is verplicht")]
public int TypeID { get; set; }
private BType _Type = null;
public BType Type
{
get {
if (this._Type == null)
{
BTypeContext repo = new BTypeContext();
this._Type = repo.BTypes.Where(x => x.Id == this.TypeID).FirstOrDefault();
}
return this._Type;
}
}
}
Я не уверен, что путь, который я загружаю тип в подтипа является правильным способом.
В представлении мне нужно создать таблицу для подтипов, но мне также нужна информация для типа для этого подтипа.
Каков наилучший способ получить информацию о типе внутри подтипа?
Если я добавить это, что я получаю следующее сообщение об ошибке: Существует уже откройте DataReader, связанный с этой Командой, который должен быть закрыт первым. И знаете ли вы, что этот вызов кэширован? например У меня есть 100 подтипов, которые используют один и тот же тип. Выполняет ли запрос только для типа, а затем кэширует его для следующих вызовов? Или он запрашивает 100x (для каждого объекта подтипа). –
Игнорировать открытый Datareader: я решил это, добавив MultipleActiveResultSets = True в мою строку соединения. –