/// <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 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> /// Adds an entity specification to the scan. /// </summary> /// <param name="entitySpec"> /// The entity specification to add. /// </param> public void Add(EntitySpec entitySpec) { var esr = entitySpec as EntityScanResult; if (esr == null) { throw new ArgumentException(@"EntitySpec of type EntityScanResult expected", nameof(entitySpec)); } lock (this.syncRoot) { this.entityScanResult = esr; } }
/// <summary> /// Adds an entity specification to the scan. /// </summary> /// <param name="entitySpec"> /// The entity specification to add. /// </param> public void Add(EntitySpec entitySpec) { var esr = entitySpec as EntityScanResult; if (esr == null) { throw new ArgumentException(@"EntitySpec of type EntityScanResult expected", "entitySpec"); } lock (this.syncRoot) { this.entityScanResult = esr; } }