Esempio n. 1
0
 /// <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);
         }
     };
 }
Esempio n. 2
0
 /// <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);
             }
         };
 }
Esempio n. 3
0
        /// <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();
        }
Esempio n. 4
0
        /// <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();
        }