Dave Kreskowiak
Вам нужно почитать о Entity Framework и "отложенном выполнении".
У вас есть два оператора return, но только один из них когда-либо выполняется, тот, который находится внутри блока "using".
Оператор return может возвращать один объект,но он не возвращает никаких связанных с ним объектов. Если у вас есть свойства навигации в классе ServiceOffering, объекты в этих свойствах не возвращаются с этим запросом. Поэтому, когда вы идете использовать их, EF нужно снова запросить базу данных, чтобы получить их. Но, поскольку этот код находится в блоке "using", контекст (Solutions) уже удален и больше не может использоваться.
Вы должны сказать EF, чтобы он вернул объекты свойств навигации вместе с объектом, который вы запрашиваете. Вот что такое .Расширение Include () предназначено для.
public ActionResult Edit(string serviceTypeId)
{
// You should probably validate that you even have a serviceTypeId here...
int idToFind;
if (int.TryParse(serviceTypeId, ref idToFind))
{
using (SolutionsEntities css = new SolutionsEntities())
{
ServiceOffering obj = css.ServiceOffering.Include(x => x.relatedProperty).SingleOrDefault(x => x.Id == idToFind);
if (obj == null)
{
// Do something if the id doesn't exist...
}
else
{
return obj;
}
}
}
}
Kaishu Kawde
публичное предложение услуг частичного класса
{
общественные ServiceOffering()
{
этот.ServiceProviderServiceRates = новый HashSet & lt;serviceproviderservicerate>();
этот.ServiceProviderServiceofferings = новый HashSet & lt;serviceproviderserviceoffering>();
}
public int ServiceId { get; set; }
общественного строка описание servicedescription { получить; набор; }
общественного значения null&ЛТ;типа bool и GT; IsDeleted { получить; набор; }
общественного значения null&ЛТ;система.датавремя&ГТ; CreatedOn { получить; набор; }
общественного значения null&ЛТ;система.датавремя&ГТ; Поиск { получить; набор; }
общедоступный виртуальный интерфейс ICollection&ЛТ;serviceproviderservicerate&ГТ; ServiceProviderServiceRates { получить; набор; }
общедоступный виртуальный интерфейс ICollection&ЛТ;serviceproviderserviceoffering&ГТ; ServiceProviderServiceofferings { получить; набор; }
}
Это класс, созданный EF. В соответствии с этим, как мне нужно с этим справиться?
Dave Kreskowiak
Я уже сказал тебе, как с этим справиться, и сказал, что нужно искать и изучать. Я не могу написать ваш код для вас.