Go to the documentation of this file.00001 using System.Linq;
00002 using System.Linq.Expressions;
00003
00004 namespace N2.Linq
00005 {
00006 public class ContentQueryable<T> : IQueryable<T>
00007 {
00008 readonly IQueryable<T> query;
00009 readonly ContentQueryProvider provider;
00010
00011 public ContentQueryable(IQueryable<T> query)
00012 {
00013 provider = new ContentQueryProvider(query.Provider);
00014 this.query = query;
00015 }
00016 public ContentQueryable(ContentQueryProvider provider, IQueryable<T> query)
00017 {
00018 this.provider = provider;
00019 this.query = query;
00020 }
00021
00022 #region IEnumerable<T> Members
00023
00024 public System.Collections.Generic.IEnumerator<T> GetEnumerator()
00025 {
00026 return query.GetEnumerator();
00027 }
00028
00029 #endregion
00030
00031 #region IEnumerable Members
00032
00033 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
00034 {
00035 return GetEnumerator();
00036 }
00037
00038 #endregion
00039
00040 #region IQueryable Members
00041
00042 public System.Type ElementType
00043 {
00044 get { return query.ElementType; }
00045 }
00046
00047 public Expression Expression
00048 {
00049 get { return query.Expression; }
00050 }
00051
00052 public IQueryProvider Provider
00053 {
00054 get { return provider; }
00055 }
00056
00057 #endregion
00058 }
00059
00060 }