using System.Collections.Generic; using Kreta.Framework.Collections.Generic; namespace Kreta.Framework.Entities.Generic { public interface IEntityDBHelper where EntityType : Kreta.Framework.Entities.Entity { string EmptyQueryCommandText { get; } SDA.DataProvider.SDACommand CreateEmptyQueryCommand(); SDA.DataProvider.SDACommand CreateDynamicQueryCommand(ColumnFilterMode columnFilterMode, IEnumerable columns); void LoadEntityFields(EntityType entity, SDA.DataProvider.SDADataReader reader, ColumnFilterMode columnFilterMode, IEnumerable columns); void LoadFromReader(EntityType entity, SDA.DataProvider.SDADataReader reader, ColumnFilterMode columnFilterMode, IEnumerable columns); bool LoadEntityCollection(IEntityCollection collection, SDA.DataProvider.SDACommand command); bool LoadEntityCollection(IEntityCollection collection, SDA.DataProvider.SDACommand command, ColumnFilterMode columnFilterMode, IEnumerable columns); bool LoadSingleEntity(EntityType entity, SDA.DataProvider.SDACommand command); bool LoadSingleEntity(EntityType entity, SDA.DataProvider.SDACommand command, ColumnFilterMode columnFilterMode, IEnumerable columns); bool LoadByPartnerId(EntityType entity, string filterText, int partnerId); bool LoadByPartnerId(IEntityCollection collection, string filterText, int partnerId); void BindAttributes(EntityType entity, SDA.DataProvider.SDACommand command); void DynamicBindAttributes(EntityType entity, SDA.DataProvider.SDACommand command); void BindAssociations(EntityType entity, SDA.DataProvider.SDACommand command); void CreateParameterBinding(SDA.DataProvider.SDACommand command, Dictionary commandParameters); } }