Cl.Core.Db 1.2.3-alpha

This is a prerelease version of Cl.Core.Db.
dotnet add package Cl.Core.Db --version 1.2.3-alpha                
NuGet\Install-Package Cl.Core.Db -Version 1.2.3-alpha                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cl.Core.Db" Version="1.2.3-alpha" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Cl.Core.Db --version 1.2.3-alpha                
#r "nuget: Cl.Core.Db, 1.2.3-alpha"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Cl.Core.Db as a Cake Addin
#addin nuget:?package=Cl.Core.Db&version=1.2.3-alpha&prerelease

// Install Cl.Core.Db as a Cake Tool
#tool nuget:?package=Cl.Core.Db&version=1.2.3-alpha&prerelease                

Acerca de Cl.Core.Db

Permite contruir y ejecutar scripts de base de datos a través de un contexto EntityFramework y retornar un ResultSet mapeado a su objeto de interés.

¿Qué resuelve?

Optimiza los tiempos de creación de transacciones CRUD, permitiéndole al desarrrollar invocar los métodos que esta librería ofrece y asi evitarse tener que estar mapeado las propiedades de un objeto. Esto nos permite solo tener que crear los objetos de base de datos que van a recibir estas propiedades.

Resumen de versión

Características (Features)
  • Soporte para paginacion de consultas a base de datos de aplicación
Correcciones (Fixes)
  • Agregados ICore e IServices interfaces para inyectar los servicio de bases de datos

Funciones


ICore
Descripción

Contiene las firmas de métodos que se van a mostrar a continuación.

Core
Descripción

Contiene las implementaciones de los métodos que se van a mostrar a continuación.

NOTA: Antes de poder utilizar los métodos que se van a mostrar a continuación se debe realizar la inyección de la clase.


GetSet<T, U, W>

Descrición

Obtiene un solo registro desde base de datos

Parametros
  • _context [U]: Instancia del contexto de base de datos.
  • _query [System.String]: Representa el query que se va a ejecutar para realizar la consulta a base de datos.
  • _parameters [IEnumerable<System.Data.Odbc.OdbcParameter>, Optional]: Representa la lista de parametros que se van a enviar por medio de la consulta.
  • _commandType [System.Data.CommandType, Optional]: Representa el tipo de comando que se va a ejecutar.
Ejemplo
public static void MyMethod()
{
  List<OdbcParameter> parameters = new List<OdbcParameter>()
  {
      new OdbcParameter("@UserId", 20)
  };

  MainDbContext dbContext = new MainDbContext();

  User myCurrentUser = Core.GetSet<User, MainDbContext, Cl.Core.Structures.Interfaces.ICLSingle>(context, "EXEC dbo.MY_STORED_PROCEDURE", parameters, CommandType.Text);
}

GetSet<T, U>

Descripción

Obtiene multiples registros desde base de datos

Parametros
  • _context [U]: Instancia del contexto de base de datos.
  • _query [System.String]: Representa el query que se va a ejecutar para realizar la consulta a base de datos.
  • _parameters [IEnumerable<System.Data.Odbc.OdbcParameter>, Optional]: Representa la lista de parametros que se van a enviar por medio de la consulta.
  • _commandType [System.Data.CommandType, Optional]: Representa el tipo de comando que se va a ejecutar.
Ejemplo
public static void MyMethod()
{
  List<OdbcParameter> parameters = new List<OdbcParameter>()
  {
      new OdbcParameter("@UserType", 1)
  };
  
  MainDbContext dbContext = new MainDbContext();

  IEnumerable<User> myUsers = Core.GetSet<User, MainDbContext>(context, "dbo.MY_STORED_PROCEDURE", parameters, CommandType.StoredProcedure);
}

GetDataSet

Descripción

Obtienen informacion de base de datos mediante OdbcConnection.

Parametros
  • _stringConnection [System.String]: Connection string que se utilizará para realizar la conexión con base de datos.
  • _query [System.String]: Query que se utilizará para realizar la consulta a base de datos.
  • _parameters [IEnumerable<System.Data.Odbc.OdbcParameter>, Optional]: Lista de parametros que se enviaran junto con la consulta a base de datos.
Ejemplo
public static void MyMethod()
{

  string connectionString = "Server=DATABASE_SERVER;Database=MY_DATABASE;Trusted_Connection=True;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;";
  
  string query = "EXEC dbo.MY_STORED_PROCEDURE";

  List<OdbcParameter> parameters = new List<OdbcParameter>()
  {
      new OdbcParameter("@UserType", 1)
  };

  DataSet userDataSet = Core.GetDataSet(connectionString, query, parameters);

  foreach (DataTable table in dataSet.Tables)
  {
      foreach (DataRow row in table.Rows)
      {
          string name = row["Name"].ToString();
          string email = row["Email"].ToString();
          Console.WriteLine($"Name: {name}, Email: {email}");
      }
  }
}

GetDBResource

Descripción

Obtiene el nombre del objeto de base de datos registrado en la tabla DBResources mediante el código del DBResource.

Parametros
  • _dbObjectKey [System.String]: Código del DBResource
  • _context [T]: Instancia del contexto de base de datos.
  • _shouldReleaseContext [System.Boolean, Optional]: Indica si el contexto de base de datos debe ser liberado una vez realizada la consulta.
Ejemplo
private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public void MyMethod()
{

  string dbObjectName = _core.GetDBResource<MainDbContext>("spGetUsers", new MainDbContext(), true);

}

GetDataTable

Descripción

Obtiene registros de base de datos según opciones de conexion proporcionadas. Solo obtiene la primera tabla que devuelva el objeto de base de datos.

Parametros
  • _dbConnectionOptions [Cl.Core.Structures.Classes.PresentationEntities.CLDbConnectionOptions]: Opciones para conexión con base de datos.
Ejemplo
private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public static void MyMethod()
{
  
  CLDbConnectionOptions options = new CLDbConnectionOptions()
  {
      CommandType = System.Data.CommandType.Text,
      ConnectionString = "Server=DATABASE_SERVER;Database=MY_DATABASE;Trusted_Connection=True;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;",
      DbName = "MY_DATABASE",
      DbObjectName = "MY_STORED_PROCEDURE_OR_VIEW"
  };

  DataTable table = _core.GetDataTable(options);

  foreach (DataRow row in table.Rows)
  {
     string name = row["Name"].ToString();
     string email = row["Email"].ToString();
     Console.WriteLine($"Name: {name}, Email: {email}");
  }
}

GetDataTables

Descripción

Obtiene registros de las multiples tablas que devuelve una consulta de base de datos.

Parametros
  • _dbConnectionOptions [Cl.Core.Structures.Classes.PresentationEntities.CLDbConnectionOptions]: Opciones para conexión con base de datos.
Ejemplo
private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public static void MyMethod()
{
  CLDbConnectionOptions options = new CLDbConnectionOptions()
  {
      CommandType = System.Data.CommandType.Text,
      ConnectionString = "Server=DATABASE_SERVER;Database=MY_DATABASE;Trusted_Connection=True;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;",
      DbName = "MY_DATABASE",
      DbObjectName = "MY_STORED_PROCEDURE_OR_VIEW"
  };

  DataTableCollection tables = _core.GetDataTables(options);

  foreach (DataTable table in tables)
  {
      foreach (DataRow row in table.Rows)
      {
          string name = row["Name"].ToString();
          string email = row["Email"].ToString();
          Console.WriteLine($"Name: {name}, Email: {email}");
      }
  }
}

SingleExecutor<T, U, V, W>

Descripción

Obtiene un unico registro de base de datos pasando como parametro las propiedades del modelo.

Parametros
  • _model [T]: Objeto que contiene las propiedades junto con sus valores que se enviaran junto a la consulta como parametros.
  • _dbObjectToken [Syste.String]: Código del DB resource.
  • _defaultCodeType [System.Net.HttpStatusCode]: Código HTTP que se utilizará como respuesta si todo el proceso es exitoso.
  • _fields [System.String[], Optional]: Arreglo que debe contener los nombres de las propiedades del modelo que se van a excluir o incluir.
Ejemplo
private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public static void MyMethod()
{
  UserParameters userParameters = new UserParameters()
  {
      Type = 1,
      Name = "Isaac",
      LastName = null
  };

  string dbObjectToken = "spGetUsers";

  HttpStatusCode httpStatusCode = HttpStatusCode.OK;

  string[] propertiesToExclude = { "LastName" };

  CLContext<User> usersClContext = _core.SingleExecutor<User, MainDbContext, ICLExclude, ICLSingle>(userParameters, dbObjectToken, httpStatusCode, propertiesToExclude);
}

DBExtensions

Post<TObjectToMap, TDbContext, TMaster, TSingle>

Descripción

Ejecuta un procedimiento almacenado y envia como parametros las propiedades del objeto donde se utiliza. Omite por defecto las propiedades de BaseEntity que no deberian enviarse a un creación de objeto.

Parametros
  • _core [Cl.Core.Db.ICore]: Instancia de que contenga implementaciones de ICore.
  • _dbObjectToken [System.String]: Código de DBResource.
  • _fields [System.String[]]: Arreglo que debe contener los nombres de las propiedades del modelo que se van a excluir o incluir.
Ejemplo
// User.cs
public class User : BaseEntity, ICLDatabaseServices
{
  public string Name {get;set;}
  public string LastName {get;set;}
}

// Process.cs
using Cl.Core.Db.DbExtensions;

private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public static void MyMethod()
{
  User user = new User()
  {
      Name = "Isaac",
      LastName = "Herrera"
  };

  CLContext<User> clContext = user.Post<User, MainDBContext, ICLExclude, ICLSingle>(_core, "spCreateUser", "Id", "IsActive");
}

Post<TObjectToMap, TDbContext>

Descripción

Ejecuta un procedimiento almacenado y envia como parametros las propiedades del objeto donde se utiliza. Omite por defecto las propiedades de BaseEntity que no deberian enviarse a una creación de objeto.

Parametros
  • _core [Cl.Core.Db.ICore]: Instancia de que contenga implementaciones de ICore.
  • _dbObjectToken [System.String]: Código de DBResource.
Ejemplo
// User.cs
public class User : BaseEntity, ICLDatabaseServices
{
  public string Name {get;set;}
  public string LastName {get;set;}
}

// Process.cs
using Cl.Core.Db.DbExtensions;

private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public static void MyMethod()
{
  User user = new User()
  {
      Name = "Isaac",
      LastName = "Herrera"
  };

  CLContext<User> clContext = user.Post<User, MainDBContext>(_core, "spCreateUser");
}

Patch<TObjectToMap, TDbContext, TMaster, TSingle>

Descripción

Ejecuta cun procedimiento almacenado y envia como parametros las propiedad del objeto donde se utiliza. Omite por defecto las propiedades de BaseEntity que no deberian enviarse a un actualización de objeto.

Parametros
  • _core [Cl.Core.Db.ICore]: Instancia de que contenga implementaciones de ICore.
  • _dbObjectToken [System.String]: Código de DBResource.
  • _fields [System.String[]]: Arreglo que debe contener los nombres de las propiedades del modelo que se van a excluir o incluir.
Ejemplos
// User.cs
public class User : BaseEntity, ICLDatabaseServices
{
  public string Name {get;set;}
  public string LastName {get;set;}
}

// Process.cs
using Cl.Core.Db.DbExtensions;

private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public static void MyMethod()
{
  User user = new User()
  {
      Name = "Isaac",
      LastName = "Herrera"
  };

  CLContext<User> clContext = user.Patch<User, MainDBContext, ICLExclude, ICLSingle>(_core, "spUpdateUser", "Id", "IsActive");
}

Patch<TObjectToMap, TDbContext>

Descripción

Ejecuta cun procedimiento almacenado y envia como parametros las propiedad del objeto donde se utiliza. Omite por defecto las propiedades de BaseEntity que no deberian enviarse a un actualización de objeto.

Parametros
  • _core [Cl.Core.Db.ICore]: Instancia de que contenga implementaciones de ICore.
  • _dbObjectToken [System.String]: Código de DBResourse.
Ejemplos
// User.cs
public class User : BaseEntity, ICLDatabaseServices
{
  public string Name {get;set;}
  public string LastName {get;set;}
}

// Process.cs
using Cl.Core.Db.DbExtensions;

private ICore _core;

public MyClass(ICore core)
{
  _core = core;
}

public static void MyMethod()
{
  User user = new User()
  {
      Name = "Isaac",
      LastName = "Herrera"
  };

  CLContext<User> clContext = user.Patch<User, MainDBContext>(_core, "spUpdateUser");
}

IServices
Descripción

Contiene las firmas de los métodos que se van a mostrar a continuación.

Services
Descripción

Contiene las implementaciones de los métodos de la interfaz Cl.Core.Db.IServices

NOTA: Debe realizar la configuración de inyección de dependencias para estas rutinas.


Execute<T, U> LOCAL DATABASE | SAP DATABASE

Descripción

Obtienen una lista de objetos del tipo especifico desde base de datos basado en el recurso especificado (Debe ser un recurso que represente una vista de base de datos).

Paramateros
  • _dbObjectToken [System.String]: Código de recurso de base de datos que se va a consultar.
  • _credentialHolder [Cl.Core.Structures.Classes.PresentationEntities.CLCredentialHolder, Optional]: Credenciales para realizar la conexión a SAP mediante Odbc, en caso de no proporcionarlas se infiere que la consulta es a base de datos local.
Ejemplos
public void MyMethod()
{
  // Consulting to local database
  //
  CLContext<IEnumerable<User>> clContextUser = _services.Execute<User, MainDbContext>("vGetUsers");

  // Consulting to SAP via OdbcConnection
  //
  CLContext<IEnumerable<BusinessPartner>> clContextBusinesParter = _services.Execute<BusinessPartner, MainDbContext>("vGetBusinessParters", new CLCredentialHolder() {
      DBCode = "MY_SAP_DATABASE_CODE",
      Server = "SAP_DATABASE_SERVER",
      ODBCUser = "licenseUser",
      ODBCPass = "licensePass",
      ODBCType = "ODBCTYPE"
  });
}

Execute<T, U> LOCAL DATABASE

Descripción

Obtienen una lista de objetos del tipo especifico desde base de datos basado en el recurso especificado (Debe ser un recurso que represente una vista de base de datos).

Paramateros
  • _dbObjectToken [System.String]: Código de recurso de base de datos que se va a consultar.
Ejemplos
public void MyMethod()
{
  // Consulting to local database
  //
  CLContext<IEnumerable<User>> clContextUser = _services.Execute<User, MainDbContext>("vGetUsers");
}

Execute<T, U, V> LOCAL DATABASE

Descripción

Obtiene resgistros de base de datos local basado en el recurso especificado (Debe se un recurso que represente un procedimiento almacenado)

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado (El parametro debe ser nombrado como @Key).
Ejemplo
public void MyMethod()
{
  int userType = (int)UsersType.Administrator;

  CLContext<IEnumerable<User>> clContextUsers = 
      _services.Execute<User, MainDbContext, int>("spGetUsersByType", userType);
}

Execute<T, U, V> LOCAL DATABASE

Descripción

Obtiene registros de base de datos local basado en el recurso especificado (Debe ser un recurso que represente un procedimiento almacenado)

Parameteros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado.
  • _indexKey [System.String]: Nombre que tiene el parametro en el procedimiento almacenado.
Ejemplo
public void MyMethod()
{
  CLContext<IEnumerable<User>> clContextUsers = 
      _services.Execute<User, MainDbContext, int>("spGetUsersByType", UsersType.Administrator, "@UserType");
}

Execute<T, U, V> LOCAL DATABASE | SAP DATABASE

Descripción

Obtiene resgistros de base de datos local o de SAP basdo en el recurso especificado

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado.
  • _credentialHolder [Cl.Core.Structures.Classes.PresentationEntities.CLCredentialHolder, Optional]: Credenciales para realizar conexion a SAP.
Ejemplo
public void MyMethod()
{
  CLCredentialHolder credentials = new CLCredentialHolder()
  {
      DBCode = "MY_SAP_DATABASE_CODE",
      Server = "SAP_DATABASE_SERVER",
      ODBCUser = "licenseUser",
      ODBCPass = "licensePass",
      ODBCType = "ODBCTYPE"
  };

  int docEntry = 1000;

  CLContext<IEnumerable<Document>> clResponse = _services.Execute<Document, MainDbContext, int>("GetDocument", docEntry, credentials);
}

Execute<T, U, V> LOCAL DATABAES | SAP DATABASE

Descripción

Obtiene registros de base de datos local o de SAP basado en el recurso especificado.

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado.
  • _indexKey [System.String]: Nombre que tiene el parametro en el procedimiento almacenado.
  • _credentialHolder [Cl.Core.Structures.Classes.PresentationEntities.CLCredentialHolder, Optional]: Credenciales para realizar conexion a SAP.
Ejemplo
public void MyMethod()
{
  CLCredentialHolder credentials = new CLCredentialHolder()
  {
      DBCode = "MY_SAP_DATABASE_CODE",
      Server = "SAP_DATABASE_SERVER",
      ODBCUser = "licenseUser",
      ODBCPass = "licensePass",
      ODBCType = "ODBCTYPE"
  };

  CLContext<IEnumerable<Document>> clResponse = _services.Execute<Document, MainDbContext, int>("GetDocument", 1000, "@DocEntry", credentials);
}

Execute<T, U, V, W> LOCAL DATABASE | SAP DATABASE

Descripción

Obtiene un registro de base de datos local o de SAP basado en el recurso especificado.

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado.
  • _credentialHolder [Cl.Core.Structures.Classes.PresentationEntities.CLCredentialHolder, Optional]: Credenciales para realizar conexion a SAP.
Ejemplo
public void MyMethod()
{
  CLCredentialHolder credentials = new CLCredentialHolder()
  {
      DBCode = "MY_SAP_DATABASE_CODE",
      Server = "SAP_DATABASE_SERVER",
      ODBCUser = "licenseUser",
      ODBCPass = "licensePass",
      ODBCType = "ODBCTYPE"
  };

  int docEntry = 1000;

  CLContext<Document> clResponse = _services.Execute<Document, MainDbContext, int, Cl.Core.Structures.Interfaces.ICLSingle>("GetDocument", docEntry, credentials);
}

Execute<T, U, V, W> LOCAL DATABAES | SAP DATABASE

Descripción

Obtiene registros de base de datos local o de SAP basado en el recurso especificado.

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado.
  • _indexKey [System.String]: Nombre que tiene el parametro en el procedimiento almacenado.
  • _credentialHolder [Cl.Core.Structures.Classes.PresentationEntities.CLCredentialHolder, Optional]: Credenciales para realizar conexion a SAP.
Ejemplo
public void MyMethod()
{
  CLCredentialHolder credentials = new CLCredentialHolder()
  {
      DBCode = "MY_SAP_DATABASE_CODE",
      Server = "SAP_DATABASE_SERVER",
      ODBCUser = "licenseUser",
      ODBCPass = "licensePass",
      ODBCType = "ODBCTYPE"
  };

  CLContext<Document> clResponse = _services.Execute<Document, MainDbContext, int, Cl.Core.Structures.Interfaces.ICLSingle>("GetDocument", 1000, "@DocEntry", credentials);
}

Execute<T, U, V, W> LOCAL DATABASE

Descripción

Obtiene un registro de base de datos local basado en el recurso especificado.

Parametros
  • _dbObjectToken [System.String]: Codigo de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado.
Ejemplo
public void MyMethod()
{
  int userId = 10;
  CLContext<User> clContext = _services.Execute<User, MainDbContext, int, Cl.Core.Structures.Interfaces.ICLSingle>("GetUser", userId);
}

Execute<T, U, V, W> LOCAL DATABASE

Descripción

Obtiene un registro de base de datos local basado en el recurso especificado.

Parametros
  • _dbObjectToken [System.String]: Codigo de recurso de base de datos.
  • _index [V]: Valor del parametro que se le va a enviar al procedimiento almacenado.
  • _indexKey [System.String]: Nombre que tiene el parametro en el procedimiento almacenado.
Ejemplo
public void MyMethod()
{
  CLContext<User> clContext = _services.Execute<User, MainDbContext, int, Cl.Core.Structures.Interfaces.ICLSingle>("GetUser", userId, "@UserId");
}

Execute<T, U, V, W> LOCAL DATABASE

Descripción

Envia las propiedaes de un objeto a un procedimiento almacenado.

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _object [T]: Objeto donde se van a tomar las propiedades y valores para enviar al procedimiento almacenado.
  • _toIgnore [System.String[]]: Propiedades del objeto que no se tienen que enviar al procedimiento almacenado.
Ejemplo
public void MyMethod()
{
  User user = new User()
  {
      Id = 10,
      Name = "Isaac",
      LastName = "Herrera",
      Email = "isaac@isaac.com"
      Age = 23
  };
  string[] toIgnore = {"LastName", "Age"};
  CLContext<User> clResponse = _services.Execute<User, MainDbContext, Cl.Core.Structures.Interfaces.ICLExclude, Cl.Core.Structures.Interfaces.ICLSingle>("UpdateUser", user, toIgnore);
}

Execute<S, T, U, W> LOCAL DATABASE

Descripcion

Permite obtener un tipo de datos basado en otro tipo de dato (Usado como filtro)

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _object [T]: Objeto que se tomara como filtro.
Ejemplo
public void MyMethod() {

  UserFilter filters = new UserFilter()
  {
      Role = UserRole.Administrator,
      IsActive = true
  };

  CLContext<User> clContext = _services.Execute<User, UserFilter, MainDbContext, Cl.Core.Structures.Interfaces.ICLSingle>("GetUserByFilters", filters);
}

Execute<T, V> LOCAL DATABASE

Descripción

Ejecuta un procedimiento almacenado al cual se le envian como parametros las propiedades del objeto que le enviamos y devuelve un objeto del mismo tipo.

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _object [T]: Objeto que se tomara como parametros para el procedimiento almacenado.
Ejemplo
public void MyMethod() 
{
  User user = new User()
  {
      Name = "Isaac",
      Email = "example@example.com"
  };
  
  CLContext<User> clContextCreatedUser = _services.Execute<User, MainDbContext>("CreateUser", user);
}

Execute<T, U, V> LOCAL DATABASE

Descripción

Obtiene una lista de objetos basado en otro tipo de objeto usado como filtro.

Parametros
  • _dbObjectToken [System.String]: Código de recurso de base de datos.
  • _object [T]: Objeto que sera usado como filtro para envio de parametros a procedimiento almacenado.
Ejemplo
public void MyMethod() {
 
  UserFilters filters = new UserFilters() 
  {
      Role = UserRole.Default,
      IsActive = false
  };

  CLContext<IEnumerable<User>> clResponse = _services.Execute<UserFilter, User, MainDbContext>("GetDefaultUsers", filters);
}

Paginación de consultas

Para realizar la paginacion de consultas debera agregar el siguiente ActionFilter al endpoint Cl.Core.Common.ActionFilters.ApplicationDatabase.EnablePagination esto hara que los valores de paginacion enviados se envien como parametros a los procedimientos almacenados. Ademas tiene que agregar los siguientes parametros en el siguiente orden: @Take INT,@Skip INT, @Count INT OUTPUT, como en el siguiente ejemplo:

CREATE PROCEDURE dbo.MyProcedure
@Take INT,
@Skip INT,
@Count INT OUTPUT,
-- ...Other parameters
AS
BEGIN
  SET @Count = (SELECT COUNT(*) FROM dbo.MyTable)--your query to get the total records of the query without pagination

  SELECT 
      [* | column1, column2, ...]
  FROM dbo.MyTable
  ORDER BY [column1, ...] [DESC | ASC]
  OFFSET @Skip ROWS
  FETCH NEXT @Take ROWS ONLY;
END;

Configuration keys

Hay ciertas keys de configuración que se deben agregar para el correcto funcionamiento

  • spGetDBResource (Obligatoria): Esta key de configuración lo que hace es otorgar el nombre del procedimiento almacenado que va a obtener los nombres de los otros objetos de base de datos. Ejm: "< add key="spGetDBResource" value="CLVS_D_MLT_SLT_DBRESOURCE" />" Parametros que debe tener el procedimiento almacenado que se indica en el valor de la key:
    • Name: Codigo del DBResource
    • CompanyKey: Id de la compañía, este parametro solamente se debe agregar al procedimiento si la key de configuración IsMulticompany esta con el valor true. Para obtener el valor de este parametro se debe agregar el id de la compañía en los HttpContext.Current.Items con el siguiente identificador Cl.Core.Structures.Enums.HttpContextItems.CompanyKey
  • IsMulticompany (Obligatoria): Esta key de configuración se utiliza para saber si la aplicacion va a manejar multicompañía, acepta los siguientes valores "true" o "false", si se agrega con "true" debe agregar un parametro extra al procedimiento almacenado que se indica en el "spGetDBResource"

Clavis Consultores ©

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Cl.Core.Db:

Package Downloads
Cl.Core.Auth

Servicios para recuperacion y cambio de contraseñas

Cl.Core.Addons

Funciones relacionadas con componente de walkthrough

Cl.Core.Udfs

Funcionalidades relacionadas con udfs dinámicos

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.3-alpha 87 12/20/2024
1.2.2 618 8/8/2024
1.2.2-alpha 128 7/31/2024
1.2.1-alpha 297 6/22/2024
1.2.0 212 5/18/2024
1.1.1-alpha 107 4/26/2024
1.1.0-alpha 112 4/22/2024
1.0.3.2 311 2/16/2024
1.0.3.1 140 2/14/2024
1.0.3 337 11/28/2023
1.0.2 240 9/29/2023
1.0.2-alpha 133 8/17/2023
1.0.1-alpha 132 8/17/2023
1.0.0.2 230 7/4/2023
1.0.0.2-alpha 127 8/16/2023
1.0.0.1 169 7/4/2023
1.0.0 168 7/4/2023