CL.DB
2.1.3-alpha
dotnet add package CL.DB --version 2.1.3-alpha
NuGet\Install-Package CL.DB -Version 2.1.3-alpha
<PackageReference Include="CL.DB" Version="2.1.3-alpha" />
paket add CL.DB --version 2.1.3-alpha
#r "nuget: CL.DB, 2.1.3-alpha"
// Install CL.DB as a Cake Addin #addin nuget:?package=CL.DB&version=2.1.3-alpha&prerelease // Install CL.DB as a Cake Tool #tool nuget:?package=CL.DB&version=2.1.3-alpha&prerelease
Acerca de CL.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
Cambios (Changes)
- Ahora la versión mínima de framework es 4.6.2
Funciones
Core
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.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.STRUCTURES.INTERFACES.ICLSingle>(context, "EXEC dbo.MY_STORED_PROCEDURE", parameters); }
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.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, "EXEC dbo.MY_STORED_PROCEDURE", parameters); }
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
public static 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.STRUCTURES.CLASSES.PresentationEntities.CLDbConnectionOptions
]: Opciones para conexión con base de datos.Ejemplo
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.STRUCTURES.CLASSES.PresentationEntities.CLDbConnectionOptions
]: Opciones para conexión con base de datos.Ejemplo
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
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 = Code.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
- _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.DB.DbExtensions; public static void MyMethod() { User user = new User() { Name = "Isaac", LastName = "Herrera" }; CLContext<User> clContext = user.Post<User, MainDBContext, ICLExclude, ICLSingle>("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
- _dbObjectToken [
System.String
]: Códico de DBResource.Ejemplo
// User.cs public class User : BaseEntity, ICLDatabaseServices { public string Name {get;set;} public string LastName {get;set;} } // Process.cs using CL.DB.DbExtensions; public static void MyMethod() { User user = new User() { Name = "Isaac", LastName = "Herrera" }; CLContext<User> clContext = user.Post<User, MainDBContext>("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
- _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.DB.DbExtensions; public static void MyMethod() { User user = new User() { Name = "Isaac", LastName = "Herrera" }; CLContext<User> clContext = user.Patch<User, MainDBContext, ICLExclude, ICLSingle>("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
- _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.DB.DbExtensions; public static void MyMethod() { User user = new User() { Name = "Isaac", LastName = "Herrera" }; CLContext<User> clContext = user.Patch<User, MainDBContext>("spUpdateUser"); }
Services
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.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 static 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 static 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 static 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 static 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.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder
,Optional
]: Credenciales para realizar conexion a SAP.Ejemplo
public static void MyMethod() { CL.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder credentials = new CL.STRUCTURES.CLASSES.PresentationEntities.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.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder
,Optional
]: Credenciales para realizar conexion a SAP.Ejemplo
public static void MyMethod() { CL.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder credentials = new CL.STRUCTURES.CLASSES.PresentationEntities.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.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder
,Optional
]: Credenciales para realizar conexion a SAP.Ejemplo
public static void MyMethod() { CL.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder credentials = new CL.STRUCTURES.CLASSES.PresentationEntities.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.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.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder
,Optional
]: Credenciales para realizar conexion a SAP.Ejemplo
public static void MyMethod() { CL.STRUCTURES.CLASSES.PresentationEntities.CLCredentialHolder credentials = new CL.STRUCTURES.CLASSES.PresentationEntities.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.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 static void MyMethod() { int userId = 10; CLContext<User> clContext = Service.Execute<User, MainDbContext, int, CL.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 static void MyMethod() { CLContext<User> clContext = Service.Execute<User, MainDbContext, int, CL.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 static 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.STRUCTURES.INTERFACES.ICLExclude, CL.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 static void MyMethod() { UserFilter filters = new UserFilter() { Role = UserRole.Administrator, IsActive = true }; CLContext<User> clContext = Services.Execute<User, UserFilter, MainDbContext, CL.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 static 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 static void MyMethod() { UserFilters filters = new UserFilters() { Role = UserRole.Default, IsActive = false }; CLContext<IEnumerable<User>> clResponse = Services.Execute<UserFilter, User, MainDbContext>("GetDefaultUsers", filters); }
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.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"
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
-
.NETFramework 4.6.2
- EntityFramework (>= 6.4.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CL.DB:
Package | Downloads |
---|---|
CL.PINPAD
Servicios para respado de transacciones pinpad |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.1.3-alpha | 73 | 12/20/2024 |
2.1.2-alpha | 82 | 10/24/2024 |
2.1.1-alpha | 68 | 10/24/2024 |
2.1.0 | 329 | 11/28/2023 |
2.0.0 | 231 | 9/19/2023 |
1.0.9 | 217 | 5/12/2023 |
1.0.8 | 296 | 2/17/2023 |
1.0.7 | 306 | 2/10/2023 |
1.0.6 | 315 | 1/31/2023 |
1.0.5 | 307 | 1/31/2023 |
1.0.4 | 311 | 1/30/2023 |
1.0.3 | 312 | 1/30/2023 |
1.0.2 | 322 | 1/30/2023 |
1.0.1 | 311 | 1/30/2023 |
1.0.0 | 329 | 1/25/2023 |