# omerkck41/omerkckef architecture

> Architecture diagram of the GitHub repository omerkck41/omerkckef, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/omerkck41/omerkckef
- Repository: https://github.com/omerkck41/omerkckef

## Overview

OmerkckEF is a .NET ADO.NET ORM. An application registers the library and configures a database, then uses EntityContext (or the ORMBase facade) for reads and CRUD; results are returned as typed entities or Result values. The runtime spans database-provider selection and connections, SQL generation, metadata, and entity mapping, with documented schema operations, health checks, logging, and sequential GUID support. The excerpts show the central calls and registrations; several provider and utility implementations were not excerpted, so their internal interactions are not inferred.

Main entry points: [`OmerkckEF.Bisco/DBContext/EntityContext.cs`](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/EntityContext.cs) (Entity context), [`OmerkckEF.Bisco/ServiceCollectionExtensions.cs`](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ServiceCollectionExtensions.cs) (Service registration), [`OmerkckEF.Bisco/Repositories/DALFactoryBase.cs`](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/Repositories/DALFactoryBase.cs) (Provider selection), [`OmerkckEF.Bisco/DBContext/DBServer.cs`](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBServer.cs) (Database configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_integration["Application integration"]
  node_registration["Service registration"]
  node_health["Connection health check"]
end

subgraph group_operations["ORM operations"]
  node_facade["ORM facade<br/>[ORMBase.cs]"]
  node_context["Entity context<br/>[EntityContext.cs]"]
  node_result["Operation results<br/>[Result.cs]"]
end

subgraph group_mapping["Mapping and SQL"]
  node_entity["Entity models<br/>[Attributes.cs]"]
  node_mapper["Entity mapper<br/>[EntityMapper.cs]"]
  node_metadata["Entity metadata"]
  node_sql["SQL generation<br/>[SqlGenerator.cs]"]
  node_expressions["Expression filters<br/>[BisExpression.cs]"]
  node_tools["SQL and data tools<br/>[Tools.cs]"]
end

subgraph group_connectivity["Database connectivity"]
  node_config["Database configuration<br/>[DBServer.cs]"]
  node_bisco["ADO.NET execution<br/>[Bisco.cs]"]
  node_factory["Provider selection<br/>[DALFactoryBase.cs]"]
  node_mysql["MySQL provider<br/>[MySqlDAL.cs]"]
  node_postgres["PostgreSQL provider<br/>[PostgreSQLDAL.cs]"]
  node_sqlserver["SQL provider<br/>[SqlDAL.cs]"]
  node_oracle["Oracle provider<br/>[OracleDAL.cs]"]
  node_sqlite["SQLite provider<br/>[SQLiteDAL.cs]"]
  node_mongo["MongoDB provider<br/>[MongoDBDAL.cs]"]
end

node_app(("Application"))
node_database[("Configured database")]
node_logging["Serilog logging"]

node_app -->|"registers"| node_registration
node_app -->|"uses CRUD"| node_context
node_registration -->|"configures"| node_config
node_registration -->|"registers"| node_metadata
node_registration -->|"registers"| node_sql
node_registration -->|"registers"| node_context
node_registration -->|"registers"| node_health
node_registration -->|"configures"| node_logging
node_app -.->|"may use"| node_facade
node_facade -->|"delegates CRUD"| node_context
node_context -->|"maps query rows"| node_mapper
node_context -->|"reads metadata"| node_metadata
node_context -->|"uses generator"| node_sql
node_context -->|"executes commands"| node_bisco
node_context -.->|"translates filters"| node_expressions
node_context -->|"uses helpers"| node_tools
node_context -->|"returns"| node_result
node_sql -->|"reads properties"| node_metadata
node_mapper -->|"reads properties"| node_metadata
node_context -.->|"operates on"| node_entity
node_bisco -->|"uses settings"| node_config
node_bisco -->|"selects provider"| node_factory
node_factory -->|"creates provider"| node_mysql
node_factory -->|"creates provider"| node_postgres
node_factory -->|"creates provider"| node_sqlserver
node_factory -->|"creates provider"| node_oracle
node_factory -->|"creates provider"| node_sqlite
node_mysql -->|"builds connection"| node_config
node_postgres -->|"builds connection"| node_config
node_sqlserver -->|"builds connection"| node_config
node_oracle -->|"builds connection"| node_config
node_sqlite -->|"builds connection"| node_config
node_bisco -->|"runs SQL"| node_database
node_health -->|"checks connection"| node_context

click node_registration "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ServiceCollectionExtensions.cs"
click node_health "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/HealthChecks/DbConnectionHealthCheck.cs"
click node_facade "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/Repositories/ORMBase.cs"
click node_context "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/EntityContext.cs"
click node_result "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/Result.cs"
click node_entity "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/Attributes.cs"
click node_mapper "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/EntityMapper.cs"
click node_metadata "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/MetadataProvider.cs"
click node_sql "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/SqlGenerator.cs"
click node_expressions "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/BisExpression.cs"
click node_tools "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/Tools.cs"
click node_config "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBServer.cs"
click node_bisco "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/Bisco.cs"
click node_factory "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/Repositories/DALFactoryBase.cs"
click node_mysql "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/MySqlDAL.cs"
click node_postgres "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/PostgreSQLDAL.cs"
click node_sqlserver "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/SqlDAL.cs"
click node_oracle "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/OracleDAL.cs"
click node_sqlite "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/SQLiteDAL.cs"
click node_mongo "https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/MongoDBDAL.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_registration,node_health toneBlue
class node_facade,node_context,node_result,node_database toneAmber
class node_entity,node_mapper,node_metadata,node_sql,node_expressions,node_tools toneMint
class node_config,node_bisco,node_factory,node_mysql,node_postgres,node_sqlserver,node_oracle,node_sqlite,node_mongo toneRose
class node_app,node_logging toneIndigo
```

## Components

### Application integration

- [Service registration](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ServiceCollectionExtensions.cs): `OmerkckEF.Bisco/ServiceCollectionExtensions.cs`
- [Connection health check](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/HealthChecks/DbConnectionHealthCheck.cs): `OmerkckEF.Bisco/ToolKit/HealthChecks/DbConnectionHealthCheck.cs`

### ORM operations

- [ORM facade](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/Repositories/ORMBase.cs): `OmerkckEF.Bisco/Repositories/ORMBase.cs`
- [Entity context](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/EntityContext.cs): `OmerkckEF.Bisco/DBContext/EntityContext.cs`
- [Operation results](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/Result.cs): `OmerkckEF.Bisco/ToolKit/Result.cs`

### Mapping and SQL

- [Entity models](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/Attributes.cs): `OmerkckEF.Bisco/ToolKit/Attributes.cs`
- [Entity mapper](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/EntityMapper.cs): `OmerkckEF.Bisco/ToolKit/EntityMapper.cs`
- [Entity metadata](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/MetadataProvider.cs): `OmerkckEF.Bisco/ToolKit/MetadataProvider.cs`
- [SQL generation](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/SqlGenerator.cs): `OmerkckEF.Bisco/ToolKit/SqlGenerator.cs`
- [Expression filters](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/BisExpression.cs): `OmerkckEF.Bisco/ToolKit/BisExpression.cs`
- [SQL and data tools](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/ToolKit/Tools.cs): `OmerkckEF.Bisco/ToolKit/Tools.cs`

### Database connectivity

- [Database configuration](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBServer.cs): `OmerkckEF.Bisco/DBContext/DBServer.cs`
- [ADO.NET execution](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/Bisco.cs): `OmerkckEF.Bisco/DBContext/Bisco.cs`
- [Provider selection](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/Repositories/DALFactoryBase.cs): `OmerkckEF.Bisco/Repositories/DALFactoryBase.cs`
- [MySQL provider](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/MySqlDAL.cs): `OmerkckEF.Bisco/DBContext/DBSchemas/MySqlDAL.cs`
- [PostgreSQL provider](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/PostgreSQLDAL.cs): `OmerkckEF.Bisco/DBContext/DBSchemas/PostgreSQLDAL.cs`
- [SQL provider](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/SqlDAL.cs): `OmerkckEF.Bisco/DBContext/DBSchemas/SqlDAL.cs`
- [Oracle provider](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/OracleDAL.cs): `OmerkckEF.Bisco/DBContext/DBSchemas/OracleDAL.cs`
- [SQLite provider](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/SQLiteDAL.cs): `OmerkckEF.Bisco/DBContext/DBSchemas/SQLiteDAL.cs`
- [MongoDB provider](https://github.com/omerkck41/omerkckef/blob/master/OmerkckEF.Bisco/DBContext/DBSchemas/MongoDBDAL.cs): `OmerkckEF.Bisco/DBContext/DBSchemas/MongoDBDAL.cs`

### Other components

- **Application**
- **Configured database**
- **Serilog logging**

## Connections

- Application → Service registration: registers (evidence: `README.md`)
- Application → Entity context: uses CRUD (evidence: `README.md`)
- Service registration → Database configuration: configures (evidence: `OmerkckEF.Bisco/ServiceCollectionExtensions.cs`)
- Service registration → Entity metadata: registers (evidence: `OmerkckEF.Bisco/ServiceCollectionExtensions.cs`)
- Service registration → SQL generation: registers (evidence: `OmerkckEF.Bisco/ServiceCollectionExtensions.cs`)
- Service registration → Entity context: registers (evidence: `OmerkckEF.Bisco/ServiceCollectionExtensions.cs`)
- Service registration → Connection health check: registers (evidence: `OmerkckEF.Bisco/ServiceCollectionExtensions.cs`)
- Service registration → Serilog logging: configures (evidence: `OmerkckEF.Bisco/ServiceCollectionExtensions.cs`)
- Application → ORM facade: may use (evidence: `OmerkckEF.Bisco/Repositories/ORMBase.cs`)
- ORM facade → Entity context: delegates CRUD (evidence: `OmerkckEF.Bisco/Repositories/ORMBase.cs`)
- Entity context → Entity mapper: maps query rows (evidence: `OmerkckEF.Bisco/DBContext/EntityContext.cs`)
- Entity context → Entity metadata: reads metadata (evidence: `OmerkckEF.Bisco/DBContext/EntityContext.cs`)
- Entity context → SQL generation: uses generator (evidence: `OmerkckEF.Bisco/DBContext/EntityContext.cs`)
- Entity context → ADO.NET execution: executes commands (evidence: `OmerkckEF.Bisco/DBContext/EntityContext.cs`)
- Entity context → Expression filters: translates filters
- Entity context → SQL and data tools: uses helpers (evidence: `OmerkckEF.Bisco/DBContext/EntityContext.cs`)
- Entity context → Operation results: returns (evidence: `OmerkckEF.Bisco/DBContext/EntityContext.cs`)
- SQL generation → Entity metadata: reads properties (evidence: `OmerkckEF.Bisco/ToolKit/SqlGenerator.cs`)
- Entity mapper → Entity metadata: reads properties (evidence: `OmerkckEF.Bisco/ToolKit/EntityMapper.cs`)
- Entity context → Entity models: operates on
- ADO.NET execution → Database configuration: uses settings (evidence: `OmerkckEF.Bisco/DBContext/Bisco.cs`)
- ADO.NET execution → Provider selection: selects provider (evidence: `OmerkckEF.Bisco/DBContext/Bisco.cs`)
- Provider selection → MySQL provider: creates provider (evidence: `OmerkckEF.Bisco/Repositories/DALFactoryBase.cs`)
- Provider selection → PostgreSQL provider: creates provider (evidence: `OmerkckEF.Bisco/Repositories/DALFactoryBase.cs`)
- Provider selection → SQL provider: creates provider (evidence: `OmerkckEF.Bisco/Repositories/DALFactoryBase.cs`)
- Provider selection → Oracle provider: creates provider (evidence: `OmerkckEF.Bisco/Repositories/DALFactoryBase.cs`)
- Provider selection → SQLite provider: creates provider (evidence: `OmerkckEF.Bisco/Repositories/DALFactoryBase.cs`)
- MySQL provider → Database configuration: builds connection (evidence: `OmerkckEF.Bisco/DBContext/DBSchemas/MySqlDAL.cs`)
- PostgreSQL provider → Database configuration: builds connection (evidence: `OmerkckEF.Bisco/DBContext/DBSchemas/PostgreSQLDAL.cs`)
- SQL provider → Database configuration: builds connection (evidence: `OmerkckEF.Bisco/DBContext/DBSchemas/SqlDAL.cs`)
- Oracle provider → Database configuration: builds connection (evidence: `OmerkckEF.Bisco/DBContext/DBSchemas/OracleDAL.cs`)
- SQLite provider → Database configuration: builds connection (evidence: `OmerkckEF.Bisco/DBContext/DBSchemas/SQLiteDAL.cs`)
- ADO.NET execution → Configured database: runs SQL (evidence: `OmerkckEF.Bisco/DBContext/Bisco.cs`)
- Connection health check → Entity context: checks connection (evidence: `OmerkckEF.Bisco/ToolKit/HealthChecks/DbConnectionHealthCheck.cs`)
