Files
rikako-note/Golang/ent.md
2025-02-18 00:50:33 +08:00

1.5 KiB
Raw Blame History

ent

Introduction

ent是一个简单、功能强大的entity framework。下面将会是一个ent的使用示例。

init project

go mod init entdemo

创建schema

在entdemo目录下运行

go run -mod=mod entgo.io/ent/cmd/ent new User

上述命令会为User创建schema创建位置位于entdemo/ent/schema目录下,entdemo/ent/schema/user.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内容为如下:

// 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:

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