mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-06 16:30:52 +08:00
Updated AOP (markdown)
28
AOP.md
28
AOP.md
@@ -89,6 +89,34 @@ FreeSql 自带迁移功能,那么迁移的 SQL 语句长啥样,你可能会
|
|||||||
|
|
||||||
fsql.Aop.SyncStructureBefore、fsql.Aop.SyncStructureAfter 这两个事件将排上用场。
|
fsql.Aop.SyncStructureBefore、fsql.Aop.SyncStructureAfter 这两个事件将排上用场。
|
||||||
|
|
||||||
|
## ConfigEntityProperty
|
||||||
|
|
||||||
|
### MySql Enum 映射
|
||||||
|
|
||||||
|
默认情况 c# 枚举会映射为 MySql Enum 类型,如果想映射为 int 在 FreeSqlBuilder Build 之后执行以下 Aop 统一处理:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
fsql.Aop.ConfigEntityProperty += (s, e) => {
|
||||||
|
if (e.Property.PropertyType.IsEnum)
|
||||||
|
e.ModifyResult.MapType = typeof(int);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### 修改 decimal 默认特性
|
||||||
|
|
||||||
|
因为默认 decimal 只支持 decimal(10,2),范围太小,我们可以全局修改 decimal 类型的支持范围,比如支持 decimal(18,6)
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
fsql1.Aop.ConfigEntityProperty += (s, e) =>
|
||||||
|
{
|
||||||
|
if (e.Property.PropertyType == typeof(decimal)|| e.Property.PropertyType == typeof(decimal?))
|
||||||
|
{
|
||||||
|
e.ModifyResult.Precision = 18;
|
||||||
|
e.ModifyResult.Scale = 6;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
## 自定义实体特性
|
## 自定义实体特性
|
||||||
|
|
||||||
比如项目内已经使用了其它 orm,如 efcore,这样意味着实体中可能存在 [Key],但它与 FreeSql [Column(IsPrimary = true] 不同。
|
比如项目内已经使用了其它 orm,如 efcore,这样意味着实体中可能存在 [Key],但它与 FreeSql [Column(IsPrimary = true] 不同。
|
||||||
|
|||||||
Reference in New Issue
Block a user