ASP.NET Core上具有身份的工作单元

艾哈迈德·阿里夫(Ahmet Arif)

我正在为移动应用程序创建Web api,我需要在用户注册时将数据添加到数据库中,我想将数据添加到多个表中

我的用户表设计:

  • AspnetUsers:默认身份表
  • StudentUsers:第二个用户详细信息表
  • TeacherUsers:用户的第三张表

在注册时,用户选择他们是学生还是老师。这里的问题是,注册时有两个表,我想针对这种情况使用工作单元,以防止数据保存失败。如果数据失败,则不要将数据添加到其他表中。

但是我如何才能实现这一点呢?

手榴弹编码器

您不需要考虑/过度使用Entity Framework Core的工作单元。

看到:

https://gunnarpeipman.com/ef-core-repository-unit-of-work/

因此,为了获得“交易”,您将致电

myInjectedContext.BeginTransaction().
/* alter any/all of the 3 DbSets */
    myInjectedContext.Commit();

其中myInjectedContext是IDataContext。

public class MyTransactionallyFriendlyDbContext : DbContext /*(, IDataContext) */
{
    public LasteDbContext(DbContextOptions<LasteDbContext> options)
        : base(options)
    {
    }
 
    public DbSet<AspnetUser> AspnetUsers { get; set; }
    public DbSet<StudentUser> StudentUsers { get; set; }
    public DbSet<TeacherUser> TeacherUsers { get; set; }
    
    private IDbContextTransaction _transaction;
 
    public void BeginTransaction()
    { 
        _transaction = Database.BeginTransaction();
    }
 
    public void Commit()
    {
        try
        {
            SaveChanges();
            _transaction.Commit();
        }
        finally
        {
            _transaction.Dispose();
        }        
    }
 
    public void Rollback()
    { 
        _transaction.Rollback();
        _transaction.Dispose();
    }
}

这是一个满足Ioc /单元测试需求的接口。

public interface IDataContext
{
    DbSet<AspnetUser> AspnetUsers { get; set; }
    DbSet<StudentUser> StudentUsers { get; set; }
    DbSet<TeacherUser> TeacherUsers { get; set; }
 
    void BeginTransaction();
    void Commit();
    void Rollback();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET身份

来自分类Dev

ASP.NET身份登录

来自分类Dev

ASP.Net身份注销

来自分类Dev

在ASP.NET中实现存储库和工作单元模式

来自分类Dev

具有ASP.NET身份的AuthorizeAttribute

来自分类Dev

带有身份验证令牌的提琴手multipart / form-data asp.net Web API 2

来自分类Dev

具有asp.net身份的xamarin 2.0

来自分类Dev

具有MVC Asp.net身份角色的用户列表

来自分类Dev

具有ASP.NET身份的可变cookie路径

来自分类Dev

asp.net身份SetEmailConfirmedAsync

来自分类Dev

将'hd'参数附加到带有身份标识3的redirectUrl ASP.NET Core 1

来自分类Dev

ASP.NET身份与FormsAuthetication

来自分类Dev

带有Asp.Net Core中间件或Mvc筛选器的Entity Framework Core 1.0工作单元

来自分类Dev

具有ASP.NET身份的动态访问控制

来自分类Dev

忘记了具有asp.net身份的密码

来自分类Dev

如何在带有身份的ASP.NET Core项目中禁用HTTPS?

来自分类Dev

SAML与ASP.NET Core身份集成

来自分类Dev

用于发布实体的Asp.Net核心存储库和工作单元模式

来自分类Dev

当使用ASP.NET Core Web API中没有身份的cookie身份验证时,如何在登录时刷新CSRF令牌

来自分类Dev

具有身份和ExternalLogin的ASP.NET Core 3.1中基于角色的授权

来自分类Dev

此外,使用现有身份验证密码保护作为Azure WebApp托管的ASP.NET Core MVC网站

来自分类Dev

具有自定义身份验证类型的ASP.NET Core JWT

来自分类Dev

ASP.NET核心。没有身份用户帐户的情况下如何创建身份验证Cookie?

来自分类Dev

带有身份验证令牌的Fiddler multipart / form-data asp.net Web API 2

来自分类Dev

具有自定义角色的asp.net身份

来自分类Dev

创建没有身份验证的项目时的ASP.NET身份集成

来自分类Dev

为什么带有身份2的ASP.NET Web API不能授予我对受保护资源的访问权限?

来自分类Dev

asp .net 和 asp .net core 有什么区别?

来自分类Dev

调用现有服务的新网站的最佳架构(具有身份验证和授权的 ASP.NET Web API)

Related 相关文章

  1. 1

    ASP.NET身份

  2. 2

    ASP.NET身份登录

  3. 3

    ASP.Net身份注销

  4. 4

    在ASP.NET中实现存储库和工作单元模式

  5. 5

    具有ASP.NET身份的AuthorizeAttribute

  6. 6

    带有身份验证令牌的提琴手multipart / form-data asp.net Web API 2

  7. 7

    具有asp.net身份的xamarin 2.0

  8. 8

    具有MVC Asp.net身份角色的用户列表

  9. 9

    具有ASP.NET身份的可变cookie路径

  10. 10

    asp.net身份SetEmailConfirmedAsync

  11. 11

    将'hd'参数附加到带有身份标识3的redirectUrl ASP.NET Core 1

  12. 12

    ASP.NET身份与FormsAuthetication

  13. 13

    带有Asp.Net Core中间件或Mvc筛选器的Entity Framework Core 1.0工作单元

  14. 14

    具有ASP.NET身份的动态访问控制

  15. 15

    忘记了具有asp.net身份的密码

  16. 16

    如何在带有身份的ASP.NET Core项目中禁用HTTPS?

  17. 17

    SAML与ASP.NET Core身份集成

  18. 18

    用于发布实体的Asp.Net核心存储库和工作单元模式

  19. 19

    当使用ASP.NET Core Web API中没有身份的cookie身份验证时,如何在登录时刷新CSRF令牌

  20. 20

    具有身份和ExternalLogin的ASP.NET Core 3.1中基于角色的授权

  21. 21

    此外,使用现有身份验证密码保护作为Azure WebApp托管的ASP.NET Core MVC网站

  22. 22

    具有自定义身份验证类型的ASP.NET Core JWT

  23. 23

    ASP.NET核心。没有身份用户帐户的情况下如何创建身份验证Cookie?

  24. 24

    带有身份验证令牌的Fiddler multipart / form-data asp.net Web API 2

  25. 25

    具有自定义角色的asp.net身份

  26. 26

    创建没有身份验证的项目时的ASP.NET身份集成

  27. 27

    为什么带有身份2的ASP.NET Web API不能授予我对受保护资源的访问权限?

  28. 28

    asp .net 和 asp .net core 有什么区别?

  29. 29

    调用现有服务的新网站的最佳架构(具有身份验证和授权的 ASP.NET Web API)

热门标签

归档