Ich muss einige Funktionen in der Repository-Klasse in die .net-Core-Bibliothek einfügen. Aber ich bekomme einen Fehler, dass mein Konstruktor keinen Konstruktor hat. Was mache ich falsch? Hier ist mein DbContext CodeZugriff auf das Repository aus der .NET-Core-Bibliothek
public class effMercContext : DbContext
{
public DbSet<Department> Departments { get; set; }
public DbSet<Employee> Employees { get; set; }
public DbSet<Project> Projects { get; set; }
public effMercContext(DbContextOptions<effMercContext> options)
: base(options)
{
}
}
public class EffMercDbContextFactory : IDbContextFactory<effMercContext>
{
public effMercContext Create(DbContextFactoryOptions options)
{
var builder = new DbContextOptionsBuilder<effMercContext>();
builder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=pinchdb;Trusted_Connection=True;MultipleActiveResultSets=true");
return new effMercContext(builder.Options);
}
}
Mein Repository-Klasse bisher
public class EmployeeRepository
{
public Employee GetByID(int id)
{
using (effMercContext db = new effMercContext())
{
}
}
}
Natürlich folgen Wenn Sie eine Klasse definieren, die nur instanziiert werden kann, indem Sie ein bestimmtes Argument an ihren Konstruktor übergeben und dann versuchen, sie zu instanziieren, ohne Argumente an den Konstruktor zu übergeben, wird das nicht funktionieren. Welcher Teil ist nicht offensichtlich, die Tatsache, dass der Konstruktor Ihrer Klasse ein Argument benötigt, dass Sie kein Argument an Ihren Konstruktor übergeben, oder der daraus resultierende Fehler? Wenn man erklärt, welcher Teil unklar ist, können sich die Antworten auf diesen Teil konzentrieren. – hvd
Ich bin nicht klar, wie ich mein Repository implementieren soll. Ich möchte so etwas machen [link] (https://docs.asp.net/en/latest/fundamentals/dependency-injection.html#using-framework-provided-services), aber in .net Kernbibliothek, und nicht in der Schnittstelle, aber in der Klasse –
@ ВасяПупкин Aber Ihre Frage behandelt dieses Thema nicht. Es ist ein Fehler in Ihrem 'DbContext'. Bitte stellen Sie eine neue Frage zu diesem Thema – rbr94