/// <summary> /// Initializes a new instance of the <see cref="EntityScanResult" /> class. /// </summary> /// <param name="entityReference"> /// The entity reference. /// </param> internal EntityScanResult(EntityReference entityReference) : base(entityReference, null) { this.collection = new ChunkedCollection <object>(); this.valueSink = v => { lock (this.collection.SyncRoot) { this.collection.Add(v); } }; }
/// <summary> /// Initializes a new instance of the <see cref="EntityScanResult"/> class. /// </summary> /// <param name="entityReference"> /// The entity reference. /// </param> internal EntityScanResult(EntityReference entityReference) : base(entityReference, null) { this.collection = new ChunkedCollection<object>(); this.valueSink = v => { lock (this.collection.SyncRoot) { this.collection.Add(v); } }; }
/// <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(); }
/// <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(); }