Netsharp实体设计白皮书详细介绍了如何在国人自研的技术平台上进行高效实体设计,该平台主要基于C#语言,旨在简化管理和软件开发流程。白皮书中重点讨论了以下几个关键概念和技术:
1. **实体和SET**: 在Netsharp中,实体通常代表数据库中的表或数据模型,它们封装了数据和业务逻辑。SET(Structured Entity Table)是这些实体的容器,用于管理多个实体实例,提供了一种更高级别的操作和组织。
2. **SET升级与重构**:
- **取消类EntityList<T>**:旧版本中使用`EntityList<T>`来管理实体列表,但在新版本中被`Table<T>`所替代,这可能意味着更简洁的API和更好的性能优化。
- **ITable的改变**:`ITable`接口移除了`Rows`方法,转而实现了`IList`接口,提供了更直接的访问和操作实体列表的方式。
- **子对象集合Subs<T>**:`Subs<T>`用于处理子对象的集合,例如在订单中包含商品明细,平台会自动维护这些关联关系。
3. **创建和使用**:
- `EntityService.CreateTable<T>()`是创建`ITable`的便捷方法,用于初始化表结构。
- 对于临时或不需要管理的集合,可以使用`List<T>`。
- `ISubs`接口的`NewRow`方法允许自动将新行添加到对应的`Table`中,并自动维护与父对象的关系。
4. **状态管理**:
- `Trim`方法用于清除状态为`Delete`的数据行,保持数据一致性。
- `Clone`和`Sync`方法的取消,表明设计者倾向于使用查询和导入功能来代替,以避免复杂的状态同步操作。
5. **批量文本替换**: 提供了一些常见的转换规则,如将`EntityList<string>`和`EntityList<object>`替换为标准的`List`类型,以及其他特定类型的转换。
6. **新的命名约定**:
- `DbSyncMode`更名为`ImportMode`,可能暗示了数据导入和同步方式的变更。
- 重构后的SET服务方法要求参数不能是实体集合,以防止潜在的并发问题和复杂性。
7. **实体归属规则**:
- 实体和`IRow`对象必须明确地且只属于一个`Table`,确保数据的唯一所属关系。
8. **实体定义**:
- 实体的核心职责是封装数据和业务逻辑,提供易于使用的API。
- C#代码中使用`[Netsharp.Core.TableMa...`注解标记表关联信息,体现了实体与SET之间的映射关系。
Netsharp实体设计白皮书详细阐述了在该平台中如何通过C#进行高效实体设计,包括SET的使用、数据操作方式的调整以及实体间关系的管理,为开发者提供了清晰的指导和实践参考。