public async Task <Operation <TObject> > GetAsync(long id, FieldOptions fields = null, ProjectionOptions projection = null) { _db.SetTypeInfo(typeof(TObject)); var getById = FilterOptions.FromType <TObject>(x => x.Id); getById.Fields[0].Value = id; var sql = _dialect.Build <TObject>(fields: fields, filter: getById, projections: projection); var data = await _db.Current.QuerySingleOrDefaultAsync <TObject>(sql, new { id }); return(new Operation <TObject>(data)); }