Ошибка: 'T' должен быть неабстрактного типа с открытым конструктором без параметров - PullRequest
0 голосов
/ 17 февраля 2019

Я создал новый проект .net core 2.1.И я создал свои классы, как показано ниже.Но я принимаю ошибку в MyRepos.cs.

«MyDbContext» должен быть неабстрактного типа с открытым конструктором без параметров, чтобы использовать его в качестве параметра «TContext» в универсальном типе или методе «UnitOfWork»

UnitOfWork.cs

public class UnitOfWork<TContext> : IUnitOfWork<TContext> where TContext : DbContext, new()
{ }

IUnitOfWork.cs

public interface IUnitOfWork<U> where U : DbContext
{ }

MyRepos.cs

public class MyRepos : UnitOfWork<MyDbContext>, IMyRepos
{ }

IMyRepos.cs

public interface IMyRepos : IUnitOfWork<MyDbContext>
{ }

MyDbContext.cs

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions options) : base(GetOptions())
    { }

    public static DbContextOptions GetOptions()
    {
        return SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder(), "myConnectionString").Options;       
    }
}

1 Ответ

0 голосов
/ 17 февраля 2019

Если вы добавите конструктор без параметров в MyDbContext, я думаю, что это должно решить проблему.

Это то, что подразумевает ограничение new().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...