In EF Core implementiertes Repository: gesamten DbContext oder nur DbSet verwenden?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 In EF Core implementiertes Repository: gesamten DbContext oder nur DbSet verwenden?

Post by Anonymous »

Da EF Core bereits das Repository-Muster implementiert (

Code: Select all

DbSet
) und Arbeitseinheit (

Code: Select all

DbContext
), kann ich DbSet so direkt in meinem Repository verwenden?

Code: Select all

public class MyEfRepository : IMyRepository
{
private readonly DbSet _myModels;

public MyEfRepository(MyDbContext ctx)
{
_myModels = ctx.MyModels;
}

public MyModel FindById(Guid id)
{
return _myModels.Where(x => x.Id == id).SingleOrDefault();
}
}
Und die Arbeitseinheit wie folgt implementieren?

Code: Select all

public class MyEfUnitOfWork : IMyUnitOfWork
{
private readonly MyDbContext _ctx;
public IMyRepository MyModels { get; }

public MyEfUnitOfWork(MyDbContext ctx, MyEfRepository repo)
{
_ctx = ctx;
MyModels = repo;
}

void Commit() => _ctx.SaveChanges();
}
Ich frage mich, weil in jedem Leitfaden, den ich gelesen habe, empfohlen wurde, den gesamten DbContext in das Repository einzufügen und über Methoden wie FindById auf DbSet zuzugreifen. Ist mein Ansatz nicht sinnvoller, da die Arbeitseinheit alle Änderungen festschreibt? Oder ist mir etwas nicht bewusst?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post