コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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;
            }
        }
コード例 #4
0
ファイル: TableScan.cs プロジェクト: andysoftdev/ht4o
        /// <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;
            }
        }