{"repo":"MAS-Copilot/mas-database","free":true,"listed":false,"github":"https://github.com/MAS-Copilot/mas-database","clone":"git clone https://github.com/MAS-Copilot/mas-database.git","description":"一个面向工业自动化的 .NET 数据访问框架，提供统一的数据库操作抽象、实体映射、SQL 生成与多数据库支持","language":"C#","stars":10,"topics":["csharp","data-access","database","dotnet","industrial-automation","orm","sql"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"MAS.Database 一个轻量但可演进的 ORM-like 基础设施层 ✨ MAS 开放源代码 该库是 MAS 开放源代码体系中的一部分，专注于工业自动化场景下的数据库基础设施建设 如果你正在构建 WPF、WinUI、Worker Service 或 ASP.NET Core 应用， 并希望以统一、可扩展的方式管理数据库访问、实体映射与 SQL 生成， 那么 MAS.Database 可以作为你的基础设施层解决方案 该库提供： - 统一的数据库操作抽象 - 可扩展的 SQL 生成机制 - 基于特性的实体建模方式 - 通用泛型仓储支持 - 多数据库类型扩展能力 适用于对 可维护性、扩展性、工程化 有较高要求的工业软件项目 🗺️ 发展路线 - [x] MySql（MySqlConnector） - [ ] SqlServer - [ ] PostgreSql - [ ] Oracle - [ ] SQLite ⚠️ 使用前提 在使用本项目之前，请确认你的应用满足以下条件： - 使用 现代 .NET 项目 - 目标框架为 .NET 8.0 及以上 - 使用 Microsoft.Extensions.DependencyInjection 进行服务注册与解析 - 不支持仍运行在 .NET Framework 上的项目（未进行测试） - 仅适合在 WPF / WinUI / Worker / ASP.NET Core 中集成 📦 NuGet .NET CLI： Package Manager： 🚀 快速开始 以 MySql 为例，演示从 服务注册 → 依赖注入 → 获取实例 → 测试连接 的流程 注册服务 在应用启动阶段注册数据库服务： 数据库配置 实现 IDbConfig 示例如下： 数据库初始化 以 MySql 为例，示例如下： 数据库操作 你可以通过这两个接口来获取数据库操作实例： - IDbOperationsProvider ：数据库操作实例提供器，创建 + 状态 - IDbOperationsFactory ：数据库操作实例工厂，仅提供创建 以 MySql 为例，示例如下： 获取数据库操作实例： 执行命令（INSERT / UPDATE / DELETE）： 查询数据： 查询单条数据： 查询标量值： 事务操作： 数据库仓储 前置条件：需要注册 AddRepositories 或自定义实现仓储，仓储模板： 实体定义： 注入仓储： 添加数据： 更新数据： 新增或更新： AddOrUpdateAsync 会根据标注为 IsUnique = true 的字段判断是否已存在记录。 如果存在，则执行更新；如果不存在，则执行新增 注意：如果实体上定义了多个唯一字段，当前实现会优先使用第一个唯一字段作为判断依据 删除数据： 根据主键字段删除对应记录 根据字段查询： 适合按业务字段获取单条记录，例如按产品编号查询 条件加载： 聚合查询： 获取单个聚合值 获取分组聚合列表","default_branch":null,"files":null,"tree":[],"storefront":"/r/MAS-Copilot","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/MAS-Copilot/mas-database/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}