public bool TryGet <T>(out PEntityBuilder <T> value) { if (_Builders.TryGetValue(typeof(T), out var result) && result is PEntityBuilder <T> ) { value = (PEntityBuilder <T>)result; return(true); } value = null; return(false); }
public PEntityBuilder <T> Entity <T>() { var type = typeof(T); if (!this.TryGet(out PEntityBuilder <T> builder)) { builder = new PEntityBuilder <T>(type); _Builders.Add(type, builder); } return(builder); }
/// <summary>Marks all properties of an entity as filterable, referenced by its name.</summary> public static PEntityBuilder <T> AllPropertiesAreFilterableByName <T>(this PEntityBuilder <T> pEntityBuilder) where T : class { var generator = pEntityBuilder.GetOrCreateGenerator <IFilterParticle <T>, ByPropertyNameParticleGenerator <T> >(); var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (var p in properties) { generator.Add(p); } return(pEntityBuilder); }