/// <summary> /// Reads all entities which belongs to the given scan specification from the database. /// </summary> /// <param name="entityContext"> /// The entity context. /// </param> /// <param name="entityReference"> /// The entity reference. /// </param> /// <param name="scanSpec"> /// The scan spec. /// </param> /// <param name="entitySink"> /// The entity sink, receives the entities fetched. /// </param> /// <param name="behaviors"> /// The behaviors. /// </param> internal static void Read(EntityContext entityContext, EntityReference entityReference, ScanSpec scanSpec, Action <object> entitySink, Behaviors behaviors) { var entityScanResult = new EntityScanResult(entityReference, entitySink); var entityScanner = new EntityScanner(entityContext); entityScanner.Add(entityScanResult, scanSpec); new EntityReader(entityScanner, behaviors).Read(); }
/// <summary> /// Reads an entity which belongs to the given database key from the database. /// </summary> /// <param name="entityContext"> /// The entity context. /// </param> /// <param name="entityReference"> /// The entity reference. /// </param> /// <param name="key"> /// The database key. /// </param> /// <param name="behaviors"> /// The behaviors. /// </param> /// <returns> /// The entity. /// </returns> internal static object Read(EntityContext entityContext, EntityReference entityReference, object key, Behaviors behaviors) { var entityScanTarget = new EntityScanTarget(entityReference, key); var entityScanner = new EntityScanner(entityContext); entityScanner.Add(entityScanTarget); new EntityReader(entityScanner, behaviors).Read(); return(entityScanTarget.Value); }
/// <summary> /// Reads all entities which belongs to the given scan specification from the database. /// </summary> /// <param name="entityContext"> /// The entity context. /// </param> /// <param name="entityReference"> /// The entity reference. /// </param> /// <param name="scanSpec"> /// The scan spec. /// </param> /// <param name="behaviors"> /// The behaviors. /// </param> /// <returns> /// The entities. /// </returns> internal static IEnumerable Read(EntityContext entityContext, EntityReference entityReference, ScanSpec scanSpec, Behaviors behaviors) { var entityScanResult = new EntityScanResult(entityReference); var entityScanner = new EntityScanner(entityContext); entityScanner.Add(entityScanResult, scanSpec); new EntityReader(entityScanner, behaviors).Read(); return(entityScanResult.Values); }
/// <summary> /// Reads all entities which belongs to the given database keys from the database. /// </summary> /// <param name="entityContext"> /// The entity context. /// </param> /// <param name="entityReference"> /// The entity reference. /// </param> /// <param name="keys"> /// The entity keys. /// </param> /// <param name="entitySink"> /// The entity sink, receives the entities fetched. /// </param> /// <param name="behaviors"> /// The behaviors. /// </param> internal static void Read(EntityContext entityContext, EntityReference entityReference, IEnumerable keys, Action <object> entitySink, Behaviors behaviors) { var entityScanner = new EntityScanner(entityContext); var entityScanTargets = new ChunkedCollection <EntityScanTarget>(); foreach (var key in keys) { if (key != null) { var entityScanTarget = new EntityScanTarget(entityReference, entityReference.GetKeyFromObject(key, false), entitySink); entityScanTargets.Add(entityScanTarget); entityScanner.Add(entityScanTarget); } } new EntityReader(entityScanner, behaviors).Read(); }