/// <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); }
public Task <TEntity> ReadAsync(TKey key, EntityLoadMode mode, CancellationToken cancellationToken) { return(Task.Run(() => { return Read(key, mode); }, cancellationToken)); }
public Task <TEntity> ReadAsync(TKey key, EntityLoadMode mode) { return(ReadAsync(key, mode, CancellationToken.None)); }
public abstract TEntity Read(TKey key, EntityLoadMode mode);
/// <inheritdoc/> public abstract TEntity Get(TKey key, EntityLoadMode mode);