记开发个人图书收藏清单小程序开发初始化书房信息修改

Posted bu-dong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记开发个人图书收藏清单小程序开发初始化书房信息修改相关的知识,希望对你有一定的参考价值。

因为之前逻辑设计有点小问题,所以修改了一下:

增加core._User的Table:

1 CREATE TABLE [core].[_User]
2 (
3     [ID]       INT         NOT NULL PRIMARY KEY, 
4     [StringID] VARCHAR(36) NOT NULL,
5     CONSTRAINT [FK_User_Party] FOREIGN KEY ([ID]) REFERENCES [core].[_Party] ([ID])
6 )

在Web端需要传入StringID(也即微软Identity自动生成的AspNetUsers Table的ID)。

WebUI的Project增加Service:

/Services/UserManagerService.cs

 1     public class UserManagerService : UserManager<IdentityUser>
 2     {
 3         public UserManagerService(IUserStore<IdentityUser> store
 4             , IOptions<IdentityOptions> optionsAccessor
 5             , IPasswordHasher<IdentityUser> passwordHasher
 6             , IEnumerable<IUserValidator<IdentityUser>> userValidators
 7             , IEnumerable<IPasswordValidator<IdentityUser>> passwordValidators
 8             , ILookupNormalizer keyNormalizer
 9             , IdentityErrorDescriber errors
10             , IServiceProvider services
11             , ILogger<UserManager<IdentityUser>> logger)
12             : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger)
13         {
14         }
15         
16     }

当然,也需要在Startup.cs文件的ConfigureServices中增加依赖注入:

1 services.AddScoped<UserManagerService>();

修改Init.cshtml.cs中的部分:

 1     using M = Shelf;
 2     public class InitModel : PageModel
 3     {
 4         private readonly IShelfRepo _shelfRepo;
 5         private readonly UserManagerService _userManagerService;
 6         public InitModel(IShelfRepo shelfRepo
 7             , UserManagerService userManagerService)
 8         {
 9             _shelfRepo = shelfRepo;
10             _userManagerService = userManagerService;
11         }
12         [BindProperty]
13         public InitInputModel Input { get; set; }
14 
15         public void OnGet()
16         {
17 
18         }
19 
20         public async Task<IActionResult> OnPostAsync()
21         {
22             if (ModelState.IsValid)
23             {
24                 await _shelfRepo.InitAsync(new M.InitSpec
25                 {
26                     StringID = _userManagerService.GetUserId(User),
27                     NickName = Input.NickName.Trim(),
28                     ShelfName = Input.ShelfName.Trim()
29                 });
30                 return RedirectToPage("New");
31             }
32             return Page();
33         }
34     }

主要是第26行。对应的给InitSpec Model也增加StringID的字段。

好了,现在BL DB和登录信息关联上了。

 

以上是关于记开发个人图书收藏清单小程序开发初始化书房信息修改的主要内容,如果未能解决你的问题,请参考以下文章

记开发个人图书收藏清单小程序开发DB设计

记开发个人图书收藏清单小程序开发DB设计

记开发个人图书收藏清单小程序开发

微信小程序开发--豆瓣图书接口

微信小程序开发小白零基础入门微信小程序入门建议收藏

微信小程序开发都有哪些细节需要注意