У меня есть объект ticket
, который имеет ticketNotes
(от 0 до многих) и хотел бы отбросить детали пользователя для тех, кто создал каждую заметку при запросе билетов.Entity Framework query для включения дочерних объектов коллекции объектов
Я использую следующий код для запроса билета
var ticket = (from t in context.Tickets
.Include(t=>t.Site)
.Include(t=>t.Caller)
.Include(t=>t.Caller.Site)
.Include(t => t.Notes)
.Include(t=>t.OpenedByUser)
select t).First(t => t.TicketId == ticketId);
Моего TicketNote
класса:
public class TicketNote
{
public Guid TicketNoteId { get; set; }
public string NoteText { get; set; }
public DateTime CreatedTime { get; set; }
public Guid TicketId { get; set; }
public virtual Ticket Ticket { get; set; }
public bool ReadOnly { get; set; }
public DateTime? DateTimeDeleted { get; set; }
public Guid TenantId { get; set; }
[Required]
[DefaultValue(typeof(Guid), "00000000-0000-0000-0000-000000000000")]
public Guid CreatedByUserId { get; set; }
[ForeignKey("CreatedByUserId")]
public virtual User CreatedByUser { get; set; }
}
Я хотел бы добавить
.Include(t => t.Notes.CreatedByUser)
Однако, как ноты в коллекции у меня нет выбора.
Просьба сообщить наилучший подход к достижению отброса Созданного пользователя, который на данный момент является NULL.
Благодаря
Не уверен, что 'Any()' будет работать здесь - '.Include (t => t.Notes.Any(). CreatedByUser)'? – Kami
Привет, спасибо, я просто попробовал это, но у меня нет никаких сущностей после того, как он не работает. –
Возможно, эта статья поможет вам: [link] (http://www.codeproject.com/Articles/788559/Loading-Related-Entities-with-Entity-Framework-A-B). Особенно детали, касающиеся явной загрузки. – sszarek