我有这句话:
IEnumerable<Person> persons= context.Persons.Where(/*SomeCondition*/);
它声明为,IEnumerable<Person>但使用实例化 IQueryable<Person>。我了解IQueryable<T>继承自IEnumerable<T>。
为了实现可重用性,我创建了一个accept方法,IEnumerable而不是分别使用acceptIEnumerable和方法的两个方法IQueryable:
public IEnumerable<PersonInfo> GetPersonInfo(IEnumerable<Person> persons)
{
persons = persons.Where(/*Some condition*/);
IEnumerable<Person> persons = persons.GroupBy(/*based on some property*/);
/*Here i want check value type of persons is IQueryable or not*/
return persons;
}
在消费方面,我有:
IQueryable<Person> persons= context.Persons.Where(/*condition*/);
IQueryable<PersonInfo> result GetPersonInfo(persons.AsEnumerable()).AsQueryable();
对于内存中收集,我有:
List<Person> persons = new List<Person> { new Person {}};
IEnumerable<Person> result = GetPersonInfo(persons);
在GetPersonInfo方法,我怎么能检查persons是IQueryable或不是?
凤凰求蛊
相关分类