RavenDb选择()向下转换而不是选择必要的字段

时间:2013-05-07 10:39:19

标签: ravendb

public class PersonBrief
{
    public int Id { get; set; }
    public string Picture { get; set; }

    public PersonBrief(Person person)
    {
        Id = person.Id;
        Picture = person.Picture;
    }
}

public class Person : PersonBrief
{
    public string FullName { get; set; }
}

var results = session.Query<Person>()
   .Select(x => new PersonBrief(x))
   .ToList();

Assert.IsNull(results[0] as Person); // Fails

这是一个错误吗?如果没有,那么只选择我感兴趣的字段的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您在.ToList之前移动.Select,它将工作,但这将在客户端上进行工作。

如果要在服务器上执行此操作,则需要在查询中使用As,并且需要一个执行TransformResults的静态索引。请参阅these docs