1
我有以下型号:如何使用Linq项目层次结构?
public class Addressbook()
{
public ICollection<Person> Persons { get; set;}
}
public class Person()
{
public Title Title { get; set; }
public Address Address { get; set; }
}
public class Address()
{
public PostCode PostCode { get; set; }
}
我在通用存储库下面的方法:
public virtual IQueryable<T> Get(Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] include)
{
if (include.Any())
{
var set = include.Aggregate<Expression<Func<T, object>>, IQueryable<T>>
(dbSet, (current, expression) => current.Include(expression));
return set.Where(predicate);
}
return dbSet.Where(predicate);
}
要加载Addressbook
我想要做的事:
public override Addressbook Get(Expression<Func<Addressbook, bool>> predicate)
{
return base.Get(predicate, x => x.Persons.Select(t => t.Title)
.Select(a => a.Address)
.Select(p => p.PostCode));
}
但是,我收到一个编译错误:
Title does not contain a definition for Address.
这种投影的正确Linq语法是什么?