Пример #1
0
        /// <inheritdoc/>
        public override TEntity Get(TKey key, EntityLoadMode mode)
        {
            var record = EntityMapper.ToDataRecord(CreateByKey(key));
            var entity = Database.ExecuteToEntityList <TEntity>(Provider.GetReadCommand(record)).SingleOrDefault();

            if (mode == EntityLoadMode.Lazy)
            {
                return(entity);
            }
            foreach (var tableRef in Schema.References)
            {
                var prop = typeof(TEntity).GetProperty(tableRef.SourceColumn.PropertyName);

                var propertyValue = tableRef.IsChild ?
                                    ((IEnumerable)GetChildReference(tableRef, Schema, record)).ToList(tableRef.EntityType)
                    : GetParentReference(tableRef, Schema, record).FirstOrDefault();

                prop.SetValue(entity, propertyValue);
            }
            return(entity);
        }
Пример #2
0
 public Task <TEntity> ReadAsync(TKey key, EntityLoadMode mode, CancellationToken cancellationToken)
 {
     return(Task.Run(() => { return Read(key, mode); }, cancellationToken));
 }
Пример #3
0
 public Task <TEntity> ReadAsync(TKey key, EntityLoadMode mode)
 {
     return(ReadAsync(key, mode, CancellationToken.None));
 }
Пример #4
0
 public abstract TEntity Read(TKey key, EntityLoadMode mode);
Пример #5
0
 /// <inheritdoc/>
 public abstract TEntity Get(TKey key, EntityLoadMode mode);