Из того, что я видел, вы можете сделать это (основываясь на оригинальном сценарии «Пользователь» выше):
public class UserSummary
{
public string Name { get; set; }
public string Email { get; set; }
}
Тогда вы можете сделать это:
documentSession.Query<User>().AsProjection<UserSummary>();
Взглядна сервере Raven это выкладывается как часть запроса:
?query=&pageSize=128&fetch=Name&fetch=Email&fetch=Id
Похоже, что он запрашивает и возвращает только подмножество исходного объекта, что хорошо.
Это также работает:
documentSession.Query<User>().Select( x=> new User { Name = x.Name, Email= x.Email })
Но я не думаю, что это так же чисто, как возвращение объекта UserSummary.
Некоторые последующие вопросы для тех, кто разместил ответы:
Ссылка на RaccoonBlog имеет следующий пример:
https://github.com/ayende/RaccoonBlog/blob/master/RaccoonBlog.Web/Infrastructure/Indexes/PostComments_CreationDate.cs
Будет ли этот метод предпочтительнее, чем .AsProjection ()?В чем разница между двумя подходами?