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語法是什麼?