← Volver a Common.Domain.Master

MasterDataContext

DbContext principal para operaciones con la base de datos maestra

📊 Descripción General

La clase MasterDataContext es el contexto principal de Entity Framework Core para la base de datos maestra del sistema RestMaster. Esta clase hereda de DbContext y proporciona acceso a todas las entidades maestras del sistema.

🎯 Propósito de la Clase

  • Contexto de Datos: Contexto principal para la BD maestra
  • Mapeo ORM: Mapeo objeto-relacional con Entity Framework
  • Configuración: Configuración de conexión y opciones
  • Entidades: Acceso a todas las entidades maestras

📋 Propiedades y Métodos

CONNECTION_STRING

string?
Cadena de conexión estática para la base de datos

MasterDataContext()

Constructor
Constructor sin parámetros

MasterDataContext(options)

Constructor
Constructor con opciones de DbContext

SetConnectionString()

static void
Método estático para establecer la cadena de conexión

OnConfiguring()

protected override void
Configuración del contexto con SQL Server

OnModelCreating()

protected override void
Configuración del modelo de datos

🗄️ DbSets de Entidades

📦 Entidades de Artículos (15 DbSets)

  • AgrupacionArticulos: Agrupaciones de artículos
  • AplicarDescuentos: Descuentos aplicables
  • Articulos: Artículos principales
  • ArticuloRelacionVentaCompras: Relaciones venta-compra
  • ArticulosAperturas: Artículos de apertura
  • ArticulosBalanzas: Artículos de balanza
  • ArticulosBarras: Códigos de barras
  • ArticulosDetalles: Detalles de artículos
  • ArticulosFotos: Fotos de artículos
  • ArticulosImpresoras: Configuración de impresión
  • CambioTarifas: Cambios de tarifa
  • Cartas: Cartas de menú
  • Comandas: Comandas
  • OrdenPresentacions: Orden de presentación
  • Subarticulos: Subartículos

👥 Entidades de Personal (8 DbSets)

  • Cajeros: Cajeros del sistema
  • Camareros: Camareros
  • CamareroFotos: Fotos de camareros
  • Empleados: Empleados generales
  • EmpleadosFotos: Fotos de empleados
  • Repartidores: Repartidores
  • RepartidorFotos: Fotos de repartidores
  • Comisionistas: Comisionistas

🏢 Entidades de Empresa (6 DbSets)

  • Empresas: Datos de empresas
  • Parametros: Parámetros del sistema
  • Permisos: Permisos de usuario
  • EventosSecurities: Eventos de seguridad
  • CodigoPins: Códigos PIN
  • EsCajaConceptos: Conceptos de caja

🪑 Entidades de Salones (4 DbSets)

  • Salones: Salones del restaurante
  • SalonesFotos: Fotos de salones
  • SalonesMesas: Mesas por salón
  • Dibujos: Dibujos y planos

💳 Entidades de Tarjetas (4 DbSets)

  • Tarjetas: Tarjetas principales
  • TarjetasFotos: Fotos de tarjetas
  • TarjetasPrepagos: Tarjetas prepago
  • Clientes: Clientes (incluye tarjetas)

💰 Entidades Financieras (6 DbSets)

  • Monedas: Monedas del sistema
  • MonedasBilletes: Billetes por moneda
  • EnlaceMonedas: Enlaces de moneda
  • TipoIvas: Tipos de IVA
  • TiposMermas: Tipos de merma
  • TramosHorarios: Tramos horarios

⚙️ Entidades de Sistema (12 DbSets)

  • Sesiones: Sesiones de usuario
  • SesionesEmpresas: Sesiones por empresa
  • SesionesTrabajos: Sesiones de trabajo
  • Secuencias: Secuencias del sistema
  • UltimaFacturas: Última factura
  • UltimoConsecutivos: Último consecutivo
  • UltimoPedidos: Último pedido
  • Traspasos: Traspasos
  • TraspasosTrabajos: Traspasos de trabajo
  • FormatoImpresions: Formatos de impresión
  • FormatoImpresionCampos: Campos de formato
  • FormatoImpresionLineas: Líneas de formato
  • FormatoImpresionSeccions: Secciones de formato
  • Modificadores: Modificadores
  • Familia: Familias de productos
  • FamiliasBalanzas: Familias de balanza
  • GruposFamilias: Grupos de familias
  • GruposFamiliasLineas: Líneas de grupos
  • ComisionistaFamilia: Familias por comisionista

💡 Ejemplo de Uso

// Configurar cadena de conexión MasterDataContext.SetConnectionString("Server=localhost;Database=RestMaster_Master;Trusted_Connection=true;"); // Usar el contexto using (var context = new MasterDataContext()) { // Consultar artículos var articulos = context.Articulos .Where(a => a.Baja == "N") .OrderBy(a => a.Descripcion) .ToList(); // Consultar clientes var clientes = context.Clientes .Where(c => c.GrupoCliente == "RESTAURANTE") .ToList(); // Agregar nuevo artículo var nuevoArticulo = new Articulo { ArticuloId = "ART001", Descripcion = "Nuevo Producto", Familia = "GENERAL", Baja = "N" }; context.Articulos.Add(nuevoArticulo); context.SaveChanges(); }

🔧 Configuración de Entity Framework

⚙️ Configuración de SQL Server

  • Provider: SQL Server con Entity Framework Core
  • Compatibility Level: 120 (SQL Server 2014)
  • Logging: Logging habilitado a consola
  • Connection String: Configuración dinámica

🔑 Configuración de Claves

  • Primary Keys: Claves primarias configuradas
  • Indexes: Índices para optimización
  • Relationships: Relaciones entre entidades
  • Constraints: Restricciones de base de datos

🔗 Integración con Otros Componentes

📚 Componentes Relacionados

  • Back.Application: Servicios que usan el contexto
  • Back.API: Controladores que acceden a datos
  • Common.Constants: Constantes para validaciones
  • Entity Framework: ORM framework
  • SQL Server: Base de datos de destino

🎯 Casos de Uso

  • CRUD Operations: Operaciones básicas de datos
  • Complex Queries: Consultas complejas con LINQ
  • Transactions: Transacciones de base de datos
  • Migrations: Migraciones de esquema
  • Data Validation: Validación de entidades