You can do it with multiple queries:
var stores = context.Stores.Include("Messages").ToList();
var messageIds = stores.Messages.Select(m => m.MessageId).ToList();
var messageTexts = context.Messagetexts.Where(m => messageIds.Contains(m.MessageId) && m.LanguageId == 1);
With one query and just one level deep hierarchy you can do it like this:
var query = from s in context.Stores
Select Stores = s
Messages = from m in context.Messages.Where(m => m.MessageId.Equals(s.Id) && someOtherFilter)
var result = from s in query.Stores.ToList();
so i suspect you can filter deeper nested childs like this:
var query = from s in context.Stores
Select Stores = s
Messages = from m1 in context.Messages
Select Messages = m1
MessageTexts = from context.MessageTexts.Where(m => m.MessageId.Equals(m1.MessageId) && m.LanguageId == 1);
var result = from s in query.Stores.ToList();
I have no VS here, will test it in some hours.