У меня проблемы с запросом модели сущностей для получения дополнительной информации.
У моей базы данных есть таблица программ с отношением один ко многим с таблицей событий. Модель Entity прекрасно генерирует отношения, но я не могу понять, как запросить модель, чтобы получить объект progam с его событиями.
Я могу сделать это:
var foo = from program in entities.ProgramSet
where program.StartDate > DateTime.now
orderby program.StartDate
select program;
Никаких проблем там нет. Из того, что я нашел на странице Microsoft (формирование запросов с помощью Entity Framework): msdn.microsoft.com/en-us/library/bb896272.aspx, если я хочу получить дочерние объекты, я просто делаю следующее:
// Define a LINQ query with a path that returns
// orders and items for a contact.
var contacts = (from contact in context.Contact
.Include("SalesOrderHeader.SalesOrderDetail")
select contact).FirstOrDefault();
Однако в запросе нет .Include или Include, которые я могу найти в запросе.
Есть предложения? Я знаю, что могу выполнить foreach для всех результатов, а затем запустить на нем .Events.Load (), но разве это не вынуждает результат IQueriable выполнять sql, вместо того, чтобы использовать его для запуска только тогда, когда .ToList ( ) и т. д. вызывается на нем?
Вот пример кода из моего проекта:
public class ProgramRepository : CT.Models.IProgramRepository
{
CTEntities db = new CTEntities();
public IQueryable<Program> FindAllPrograms()
{
return db.ProgramSet;
}
public IQueryable<Program> FindUpcomingPrograms()
{
var programs = from program in FindAllPrograms()
where program.StartDate > DateTime.Now
orderby program.StartDate
select program;
return programs;
}
С FindUpComingPrograms я хотел бы, чтобы он также включал данные о событиях. Существует связь между программой и моделью событий. Программа имеет свойство List <
Events >
, которое я хотел бы заполнить и вернуть методом IQueryable.
Еще раз спасибо!