# GFluentCode
**Repository Path**: AsakuraYou/GFluentCode
## Basic Information
- **Project Name**: GFluentCode
- **Description**: 基于FluentData,快速代码工具类库。
包含实体基类和数据访问基类。通过已创建好的数据库可快速生成Model和数据操作ORM。
对于单表类型的实体无需要写代码即可实现增、删 、改、查。
对于复杂联查也可轻松实现。
核心类GFluentEntityBase 、GFluentORMBase及ORMBase。
- **Primary Language**: C#
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 2
- **Created**: 2019-11-12
- **Last Updated**: 2022-09-02
## Categories & Tags
**Categories**: utils
**Tags**: None
## README
# GFluentCode
#### 介绍
基于FluentData,快速代码工具类库
包含实体基类和数据访问基类。通过已创建好的数据库可快速生成Model和数据操作ORM。
对于单表类型的实体无需要写代码即可实现增、删 、改、查。 对于复杂联查也可轻松实现。
核心类GFluentEntityBase 、GFluentORMBase及ORMBase。
因为是由公司项目原因所以考虑做的,就是为了能快速搭一些基础代码。
因其他ORM有的需要引用另外的库,和公司要用的一些东西有的库有版本冲突,不好处理,所以就基于FluentData来做。
提供了代码生成器
使用时请参考属性实体属性定义说明
#### 环境
1. FluentData.dll
2. 代码是以Framework4.0为环境
3. 开发工具用的VS2019
4. 需要引用System.Configuration
5. 配置文件需要配置连接和数据库类型两项
#### 库说明
1. Entity库是实体类的基类
库中包含了作者提供的模板生成方法,可形成对应Entity和ORM文件模板,若不符合要求请自行编写
2. ORM库是数据访问基类
包含了SqlServer基类和Sqlite基类,用于代码生成用
3. Tools库准备写一些常用帮助类
其他说明....
#### 使用
1. 所有实体类要继承GFluentEntityBase
类名两种方式:
I. 以数据库表名一致的名称定义
建议表名后加上Entity,如UsersEntity
II. 按自己的方式定义,然后实体类型用GFluentTable特性标对表名进行定义
[GFluentTable("User")]
public MyUser
注意:若未用GFluntColumn进行主键标注,请将第一主键作为实体的第一个属性进行定义
程序查询主键时,先检索主键标识,若未找到,则以第一个属性为主键使用。
2. ORM定义,继承GFluentORMBase类
如:UsersORM:GFluentORMBase
到就可以自动完成该实体对应表的查询方法。
注意:
1、因增删需要自己按情况再进行一次实现,比如有些字段是不写库的之类的,所以没有直接开放增、改、删除方法;不可继承的类可以使用已提供的一些来实现自定义要求。
2、数据库连接串可以使用加密串,默认是不使用的。若使用,则所有继承GFluentORMBase的类都要增加构造函数,如:
public UsersORM():base(true){}
3. 自带方法不满足应用时,可调用以下方法进行自主实现
ExistsBySql、QuerySingleBySql、QueryBySql、QueryPage
4. 其它方法
直接执行Sql语句:Execute、ExecuteReturnCount
批量处理:public bool Transaction(List sqls)
自定义事务处理:public bool Transaction(Action func)
#### 关于数据库引用
1. 使用SqlServer不用引用其它库
2. 使用Sqlite时,需要在主项目库通过NuGet添加System.Data.Sqlite库
#### 属性实体属性定义说明(#property)
1. 布尔(bool) 类型的以IsXXX来命名数据库字段
2. 字符串类型,使用nvarchar定义(sqlite使用text)
3. 枚举类型,数据库字段与枚举类型同名
枚举类型用Description标签来进行含义标注,实体中对应枚举的含义名将返回对应值字符串
SqlServer推荐使用的数据类型:
字符串 -nvarchar 整型-int 超长字符串-image 流-image 日期时间-datetime 浮点-float
对于要求精度的浮点-decimal