Entity Framework & Включить - PullRequest
       21

Entity Framework & Включить

1 голос
/ 06 февраля 2011

Все Пожалуйста, помогите мне заставить include () работать в следующем случае:

ctx.Messages
  .Include("Comments.CommentType")
  .Include("Comments.Owner")
  .Include("Comments.Message")
  .Where(m => m.RID == messageId)
  .SelectMany(m => m.Comments)
  .Where(c => c.CommentType.Id == commentTypeId)
  .ToList();

Как мне переписать этот запрос?

PS Я использую EF 3.5 (не 4.0)

1 Ответ

1 голос
/ 06 февраля 2011

Скорее всего, это связано с проблемой с включением и присоединениями.В основном это сводится к следующему: включения применяются только в конце оператора, и из-за объединения тип вашего запроса изменяется с IQueryable<Message> на IQueryable<Comment>.

Удаляя объединение, оно должно правильно включать свойства навигации.Попробуйте следующее:

ctx.Comments
   .Include("CommentType")
   .Include("Owner")
   .Include("Message")
   .Where(c => c.Message.RID == messageId && c => c.CommentType.Id == commentTypeId)
   .ToList();
...