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));
  }
}

EFPF Update auf Entity Framework 4 Code First RC

Da in den letzten Tagen der Release Candidate des EF Code First veröffentlich wurde, habe ich EFPF auf den RC aktualisiert. Somit steht der Einsatz der neuen Version nichts mehr im Weg.
Bei Update gab es keine Änderungen in der API, so dass bestehende Anwendungen wie bisher laufen sollten.

Für alle Interessierten habe ich hier noch ein Video von Scott Hanselman und natürlich die Webseite zu EFPF.

Erweiterung zum Entity Framework CTP5 (EF Persistence Framework)

Wer OO-Programmierer mit Leib und Seele ist, wird wahrscheinlich schon von der neuen CTP 5 des Entity Framework gehört haben. Das Zauberwort lautet code-only. Man kann also einfach mit seinem Modell anfangen, so wie man es auch OOP-Entwickler gewohnt ist. Mit ein paar Annotationen oder Beachtung einiger Konventionen kommt man sehr schnell zu einem schönen Modell. Nun fehlt noch ein Kontext, der sich einfach von der Klasse DbContext ableiten lässt und die Sets werden als generische DbSet-Eigenschaften angelegt.Weiterlesen »