2013-05-07 68 views
1
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 

这是一个错误?如果不是,那么只选择我感兴趣的领域的正确方法是什么?RavenDb选择()向下而不是选择必要的字段

回答

1

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

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