Erweiterung in EFPF (Version 0.3)

Durch die Möglichkeit, eine Entität per Schlüssel über die neue API vom EF Code-First zu laden, habe ich das Interface IRepository um die Funktion GetByKey(object) erweitert. Die Funktion ist in den BaseRepository-Klassen von CodeOnly und Database implementiert.
Für die Implementierung im Namespace CodeOnly habe ich die eben erwähnte Funktion Find aus dem DbContext verwendet. In der Repositoryklasse aus dem Namespace Database habe ich eine eigene Implemetierung vorgenommen, welche auf der Erstellung einer Expression beruht. Da die Suche der Schlüsseleigenschaft Konventionen voraussetzen würde, ich dieses aber im Sinne der Kompatibilität auch vermeiden wollte, habe ich eine Eigenschaft Namens IdFieldExpression vom Typ Expression<func<tmodel, object="">> aufgenommen. Diese Eigenschaft sollte im Konstuktor der eigenen Klasse gesetzt werden.

public class MovieRepository : BaseRepository, IMovieRepository
{
  public MovieRepository(IUnitOfWork unitOfWork)
  : base(unitOfWork, "Filme")
  {
    //hier wird die Expression zum Auffinden der Key-Property gesetzt
    IdFieldExpression = mov => mov.fid;
  }

  public IEnumerable GetNewMovies()
  {
    return GetMany(film => film.faufnahme > DateTime.Now.AddMonths(-1));
  }
}

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s