如何将泛型类型对象传递给类构造函数

开发者

我有一个通用类,将扮演存储库的角色,还有第二个类,该第二个类应从构造函数中的通用存储库接收一个对象。

通用类(存储库):

public sealed class Repo<TContext> : IRepo<TContext>, IDisposable where TContext : DbContext, IDbContextFactory<TContext>, new()
{

    #region properties

    /// <summary>
    /// Private DBContext property
    /// </summary>
    private DbContext _Context { get; } = null;


    /// <summary>
    /// Determine if Lazy Loading either activate or not
    /// </summary>
    private bool _LazyLoaded { get; set; }

    #endregion




    #region Construcors


    public Repo(bool LazyLoaded)
    {
        _Context                                  = new TContext();
        _LazyLoaded                               = LazyLoaded;
        _Context.ChangeTracker.LazyLoadingEnabled = LazyLoaded;
    }
    public Repo(DbContext context,bool LazyLoaded)
    {
        _Context                                  = context;
        _LazyLoaded                               = LazyLoaded;
        _Context.ChangeTracker.LazyLoadingEnabled = LazyLoaded;
    }
    public Repo(IConfiguration configuration, string connectionString,bool LazyLoaded)
    {
        _Context                                  = new TContext().GetInstance(configuration, connectionString);
        _LazyLoaded                               = LazyLoaded;
        _Context.ChangeTracker.LazyLoadingEnabled = LazyLoaded;
    }


    #endregion


}

我在第二堂课尝试了什么:

class UOW:IUOW
{

    public UOW(Repo<DbContext> repo)
    {
        
    }

    public void Commit()
    {

    }

    public void RollBack()
    {

    }
}

但是我遇到了两个错误:

CS0311类型'Microsoft.EntityFrameworkCore.DbContext'不能用作通用类型或方法'Repo'中的类型参数'TContext'。没有从'Microsoft.EntityFrameworkCore.DbContext'到'Microsoft.EntityFrameworkCore.IDbContextFactory <Microsoft.EntityFrameworkCore.DbContext>'的隐式引用转换。

CS0310'DbContext'必须是具有公共无参数构造函数的非抽象类型,以便在通用类型或方法'Repo'中将其用作参数'TContext'

屏幕截图

如何配置第二个类的构造函数以从repo泛型类接收对象?

戴维

您的代码存在多个问题,但是要避免出现此处涉及的错误,DbContext它不是非抽象类型,因此不能与new()泛型约束一起使用。它也没有实现IDbContextFactory您可以做几件事。首先将使UOW通用并匹配相同的通用约束,如下所示:

class UOW<TContext> : IUOW
    where TContext : DbContext, IDbContextFactory<TContext>, new()
{
    public UOW(Repo<TContext> repo)
    {
    }
}

第二种方法是使用能够处理所有这些约束的具体类,例如:

class MyContext : DbContext, IDbContextFactory<MyContext>
{
    public MyContext CreateDbContext()
    {
        throw new NotImplementedException();
    }
}

class UOW : IUOW
{
    public UOW(Repo<MyContext> repo)
                 // ^^^^^^^^^ Use the new object here
    {
    }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java类-如何将泛型对象传递给函数

来自分类Dev

如何将类型参数传递给泛型类构造函数引用?

来自分类Dev

如何将类型参数传递给泛型类构造函数引用?

来自分类Dev

如何将超类对象传递给子类构造函数?

来自分类Dev

如何将编写的对象传递给另一个类的构造函数?

来自分类Dev

如何将类的对象传递给对象的类函数中的函数?

来自分类Dev

无法将匿名类型传递给泛型构造函数

来自分类Dev

如何将本地异常对象传递给类

来自分类Dev

如何将Controller的FormCollection和类类型对象传递给操作

来自分类Dev

如何将std :: bind对象传递给函数

来自分类Dev

如何将json对象传递给$ eval函数

来自分类Dev

如何将python对象传递给需要指针类型的函数

来自分类Dev

cpp 如何将 state_t* 类型的对象传递给函数

来自分类Dev

如何将类对象传递给函数但防止突变?

来自分类Dev

将自定义类对象传递给Java中的泛型类型

来自分类Dev

如何将C#泛型类型传递给另一个类

来自分类Dev

C ++:如何将一个对象传递给另一个对象构造函数?

来自分类Dev

如何将类型(泛型)传递给注释?

来自分类Dev

DryIoC根据泛型类型参数将参数传递给开放泛型服务的构造函数

来自分类Dev

将对象传递给函数时,如何防止模板化构造函数将类作为参数

来自分类Dev

TypeScript:如何将类型明确传递给此函数的泛型

来自分类Dev

如何将主构造函数添加到具有类型约束的泛型类?

来自分类Dev

将模板类的对象传递给另一个类的构造函数

来自分类Dev

如何将具有关联作用的类似哈希的对象传递给期望哈希的构造函数?

来自分类Dev

如何将对象传递给TypeScript中的泛型函数

来自分类Dev

为什么我允许将泛型类型的边界类型的对象传递给函数,但不允许返回它?

来自分类Dev

将ninject绑定对象传递给必须具有0参数的构造函数的类

来自分类Dev

将ninject绑定对象传递给必须具有0参数的构造函数的类

来自分类Dev

是否可以将Moq对象传递给C#类构造函数?

Related 相关文章

  1. 1

    Java类-如何将泛型对象传递给函数

  2. 2

    如何将类型参数传递给泛型类构造函数引用?

  3. 3

    如何将类型参数传递给泛型类构造函数引用?

  4. 4

    如何将超类对象传递给子类构造函数?

  5. 5

    如何将编写的对象传递给另一个类的构造函数?

  6. 6

    如何将类的对象传递给对象的类函数中的函数?

  7. 7

    无法将匿名类型传递给泛型构造函数

  8. 8

    如何将本地异常对象传递给类

  9. 9

    如何将Controller的FormCollection和类类型对象传递给操作

  10. 10

    如何将std :: bind对象传递给函数

  11. 11

    如何将json对象传递给$ eval函数

  12. 12

    如何将python对象传递给需要指针类型的函数

  13. 13

    cpp 如何将 state_t* 类型的对象传递给函数

  14. 14

    如何将类对象传递给函数但防止突变?

  15. 15

    将自定义类对象传递给Java中的泛型类型

  16. 16

    如何将C#泛型类型传递给另一个类

  17. 17

    C ++:如何将一个对象传递给另一个对象构造函数?

  18. 18

    如何将类型(泛型)传递给注释?

  19. 19

    DryIoC根据泛型类型参数将参数传递给开放泛型服务的构造函数

  20. 20

    将对象传递给函数时,如何防止模板化构造函数将类作为参数

  21. 21

    TypeScript:如何将类型明确传递给此函数的泛型

  22. 22

    如何将主构造函数添加到具有类型约束的泛型类?

  23. 23

    将模板类的对象传递给另一个类的构造函数

  24. 24

    如何将具有关联作用的类似哈希的对象传递给期望哈希的构造函数?

  25. 25

    如何将对象传递给TypeScript中的泛型函数

  26. 26

    为什么我允许将泛型类型的边界类型的对象传递给函数,但不允许返回它?

  27. 27

    将ninject绑定对象传递给必须具有0参数的构造函数的类

  28. 28

    将ninject绑定对象传递给必须具有0参数的构造函数的类

  29. 29

    是否可以将Moq对象传递给C#类构造函数?

热门标签

归档