Blame view

泰额版/Food Labeling Management Code/Yi.Doc.Md/02.框架功能模块教程/11.种子数据.md 2.87 KB
59e51671   “wangming”   1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
  ## 简介
  种子数据一直都是一个很繁琐的东西,例如在初始化数据的时候,添加默认用户
  可以通过导入sql的方式进行添加种子数据,也可以通过程序代码中自动初始化数据
  我们目前提供后者
  
  ## 如何使用
  一切的根源,来源自:`IDataSeedContributor`
  直接使用实现`IDataSeedContributor`接口,我们只需要实现 `SeedAsync(DataSeedContext context)`即可
  
  在实现类上,要将该类加入容器中,推荐通过内置的依赖注入模块
  
  当然,对于扩展,你可以重写其他的方法
  
  #### 其他方式使用
  另外,你可以直接依赖注入,直接使用IDataSeeder SeedAsync方法,重新手动执行种子数据
  > 默认在程序启动的时候,会根据配置文件选择,是否执行种子数据
  
  ## 完整例子
  ``` cs
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using SqlSugar;
  using Volo.Abp.Data;
  using Volo.Abp.DependencyInjection;
  using Volo.Abp.Domain.Repositories;
  using Volo.Abp.Guids;
  using Yi.Framework.Rbac.Domain.Entities;
  using Yi.Framework.SqlSugarCore.Abstractions;
  
  namespace Yi.Framework.Bbs.SqlSugarCore.DataSeeds
  {
      public class ConfigDataSeed : IDataSeedContributor, ITransientDependency
      {
          private ISqlSugarRepository<ConfigEntity> _repository;
          public ConfigDataSeed(ISqlSugarRepository<ConfigEntity> repository)
          {
              _repository = repository;
          }
          public async Task SeedAsync(DataSeedContext context)
          {
              if (!await _repository.IsAnyAsync(x => true))
              {
                  await _repository.InsertManyAsync(GetSeedData());
              }
          }
          public List<ConfigEntity> GetSeedData()
          {
              List<ConfigEntity> entities = new List<ConfigEntity>();
              ConfigEntity config1 = new ConfigEntity()
              {
                  ConfigKey = "bbs.site.name",
                  ConfigName = "站点名称",
                  ConfigValue = "意社区"
              };
              entities.Add(config1);
  
              ConfigEntity config2 = new ConfigEntity()
              {
                  ConfigKey = "bbs.site.author",
                  ConfigName = "站点作者",
                  ConfigValue = "橙子"
              };
              entities.Add(config2);
  
              ConfigEntity config3 = new ConfigEntity()
              {
                  ConfigKey = "bbs.site.icp",
                  ConfigName = "站点Icp备案",
                  ConfigValue = "赣ICP备20008025号"
              };
              entities.Add(config3);
  
  
              ConfigEntity config4 = new ConfigEntity()
              {
                  ConfigKey = "bbs.site.bottom",
                  ConfigName = "站点底部信息",
                  ConfigValue = "你好世界"
              };
              entities.Add(config4);
              return entities;
          }
      }
  
  
  }
  
   
  ```