diff --git a/Golang/ent.md b/Golang/ent.md new file mode 100644 index 0000000..5eb335b --- /dev/null +++ b/Golang/ent.md @@ -0,0 +1,77 @@ +# ent +## Introduction +ent是一个简单、功能强大的entity framework。下面,将会是一个ent的使用示例。 + +### init project +```bash +go mod init entdemo +``` +### 创建schema +在entdemo目录下运行 +```bash +go run -mod=mod entgo.io/ent/cmd/ent new User +``` +上述命令会为`User`创建schema,创建位置位于`entdemo/ent/schema`目录下,`entdemo/ent/schema/user.go`文件内容如下: +```go +package schema + +import "entgo.io/ent" + +// User holds the schema definition for the User entity. +type User struct { + ent.Schema +} + +// Fields of the User. +func (User) Fields() []ent.Field { + return nil +} + +// Edges of the User. +func (User) Edges() []ent.Edge { + return nil +} +``` + +### 向User实体中添加字段 +可以向User中添加两个字段,修改`Field`内容为如下: +```go +// Fields of the User. +func (User) Fields() []ent.Field { + return []ent.Field{ + field.Int("age"). + Positive(), + field.String("name"). + Default("unknown"), + } +} +``` + +### go generate +之后,可以调用`go generate`: +```bash +go generate ./ent +``` +产生内容如下: +``` +ent +├── client.go +├── config.go +├── context.go +├── ent.go +├── generate.go +├── mutation.go +... truncated +├── schema +│ └── user.go +├── tx.go +├── user +│ ├── user.go +│ └── where.go +├── user.go +├── user_create.go +├── user_delete.go +├── user_query.go +└── user_update.go +``` +