Как я могу проверить, заполнен ли дочерний объект объекта linq или нет? Пример кода ниже.
В моей модели есть два метода: один объединяет данные, а другой - нет:
public static Member GetMemberWithPhoto(Guid memberId)
{
using (DataContext db = new DataContext())
{
DataLoadOptions dataLoadOptions = new DataLoadOptions();
dataLoadOptions.LoadWith<Member>(x => x.UserPhoto);
db.LoadOptions = dataLoadOptions;
var query = from x in db.Members
where x.MemberId == memberId
select x;
return query.FirstOrDefault();
}
}
public static Member GetMember(Guid memberId)
{
using (DataContext db = new DataContext())
{
var query = from x in db.Members
where x.MemberId == memberId
select x;
return query.FirstOrDefault();
}
}
Тогда мой контроль имеет следующий код:
Member member1 = Member.GetMemberWithPhoto(memberId);
Member member2 = Member.GetMember(memberId);
Debug.WriteLine(member1.UserPhoto.ToString());
Debug.WriteLine(member2.UserPhoto.ToString());
В последней строке будет сгенерировано исключение «Невозможно получить доступ к удаленному объекту». Я знаю, что могу избавиться от этого исключения, просто не утилизируя текст данных, но тогда последняя строка сгенерирует новый запрос к базе данных, и я этого не хочу.
То, что я хотел бы, это что-то вроде:
Debug.WriteLine((member1.UserPhoto.IsPopulated()) ? member1.UserPhoto.ToString() : "none");
Debug.WriteLine((member2.UserPhoto.IsPopulated()) ? member2.UserPhoto.ToString() : "none");
Возможно ли это?