开始一个新模块

实体放哪?分层说明

默认精简结构:业务实体直接放 EasyAdminBlazor.Test/Entities/(演示项目)或你自己的业务项目 Entities/ 文件夹下。

大型项目(有接口、有前台、有后台等多个入口)可以自行拆层:

  • 新增共享层(如 XXX.Application / XXX.Core),放实体、DTO、公共服务等共用代码;
  • API、Web 前台、Admin 后台等宿主项目各自引用共享层;
  • 常见做法:共享层(Core / Application)承载实体、DTO、公共服务;宿主项目(API、Web 前台、Admin 后台)各自引用共享层,只负责入口和界面。

分层由项目规模决定,框架不做强制要求。

1. 创建实体类

先建个实体类,继承EntityFull就行:

public class MyNewEntity : EntityFull
{
    public string Name { get; set; }
    public string Description { get; set; }
}

💡 偷懒小技巧:让 AI 帮你写实体类

不想手写?让 ChatGPT、DeepSeek、Claude 代劳:

示例提示词:

我需要一个产品表,有名称、价格、库存、分类ID(关联分类表),分类ID是外键。使用 Freesql 实体特性,实体类继承 EntityFull,加上必要的特性(Table、Column、DisplayName、Navigate)。

AI 输出的代码:

[Table(Name = "product")]
public class Product : EntityFull
{
    [DisplayName("产品名称")]
    [Column(StringLength = 100)]
    public string Name { get; set; } = string.Empty;

    [DisplayName("价格")]
    [Column(Precision = 10, Scale = 2)]
    public decimal Price { get; set; }

    [DisplayName("库存")]
    public int Stock { get; set; }

    [DisplayName("分类ID")]
    public long? ClassifyId { get; set; }

    [Navigate(nameof(ClassifyId))]
    public Classify Classify { get; set; } = default!;
}

复制粘贴到项目里,然后去代码生成器生成页面就行了,就这么简单。

2. 生成 Blazor 页面

打开 /Admin/CrudGenerator,可视化配置一下,CRUD 页面就自动生成好了。

详细操作可以参考 代码生成.md