首页 > 解决方案 > 我可以将 ApplicationUser 放在 WASM 解决方案的 Shared 项目中,还是应该有某种代理 DTO 来代替?

问题描述

在共享项目中,我有模型类:

public class ItemListing
{
    public Guid Id { get; set; }
    public ApplicationUser User { get; set; }//author of the listing
    public string Description { get; set; }
}

该类ApplicationUser : IdentityUser位于 Server 项目中。

我可以吗:

  1. ApplicationUser课程移至共享项目,以便我可以在课堂上参考它ItemListing
  2. 在 Shared 项目中添加对 Server 项目的引用。
  3. 在共享项目中创建ApplicationUserDTO将包含的属性子集ApplicationUser,但是我如何需要某种映射?

标签: asp.net-coreblazordtowebassembly

解决方案


我可以将 ApplicationUser 类移动到共享项目,以便在 ItemListing 类中引用它吗?

是的,你可以。基类位于 Microsoft.Extensions.Identity.Stores 包中。

但你不应该。它会给共享 DLL 添加一些不必要的包袱,并且会向客户端公开许多与安全相关的字段。

我可以在共享项目中创建 ApplicationUserDTO

那将是有效和安全的方法。例如,您可以使用 AutoMapper 进行转换,尽管它几乎不需要。


推荐阅读