von Manfred,
3. March 2011 22:39
In einigen Wochen wird Entity Framework 4.1 als RC verfügbar sein und das lang erwartete Programmiermodell "Code Only", welches ohne explizites Entity Data Model auskommt und eigene Klassen aufgrund von Konventionen auf Tabellen mappt, zur Verfügung stellen. Glücklicherweise kann dieses Programmiermodell auch ganz gut mit abgehängten Entitäten umgehen, was bei den "Ur-Entitäten" der ersten Stunde leider nicht der Fall war. Nach dem Wieder-Anhängen eines Objektgraphens mittels Attach sind lediglich die Zustände der einzelnen Objekte zu setzen (Added, Modified, Deleted etc.). Das nachfolgende Listing demonstriert dies.
using (var ctx = new HotelContext())
{
ctx.Regionen.Attach(region);
ctx.Entry<Hotel>(h3).State = System.Data.EntityState.Added;
ctx.Entry<Region>(region).State = System.Data.EntityState.Modified;
ctx.Entry<Hotel>(h1).State = System.Data.EntityState.Modified;
ctx.SaveChanges();
}
POCO-Entitäten verhalten sich übrigens gleich, wenn auch die Anweisungen zum Setzen der Zustände ein wenig anders aussehen.
von Manfred,
23. September 2010 16:12
Wie in der Session besprochen, finden sich nachfolgend die in der Session verwendeten Beispiele.http://www.softwarearchitekt.at/downloads/EF-vs-NH.zipAusserdem hab' ich auch ein paar Fotos mit meinem iPhone gemacht.
von Manfred,
23. September 2010 12:34
Nachfolgend der Link zu meinen Folien von der Session NHibernate vs. Entity Framework: http://www.softwarearchitekt.at/downloads/EF-vs-NH.pdf
von Manfred,
16. September 2010 13:16
In Hinblick auf meine Session auf der BASTA! habe ich einen kleinen Hinterhof-Performancevergleich zwischen NHibernate und Entity Framework durchgeführt. Dazu habe ich jeweils 10, 100 und 1000 Objekte eingefügt bzw. abgerufen. Die Ergebnisse korrelieren mit einem weiteren Hinterhof-Benchmark, der von jemanden in meinem Umfeld vor einiger Zeit durchgeführt wurde. Wie man sieht, ist bei kleinen Datenmengen der Performanceunterschied vernachlässigbar.Nachfolgend die Ergebnisse:
AktionObjekteZeit EF (ms) Zeit NH (ms)
INSERT
10
45
45
INSERT
100
333
445
INSERT
1000
3157
4383
SELECT
10
81
67
SELECT
100
652
580
SELECT
1000
6406
10325
von Manfred,
23. August 2010 21:01
In nicht einmal einem Monat startet mit der BASTA! wieder die größte unabhängige .NET-Konferenz im deutschsprachigen Raum. Auch ich werde wieder meinen Anteil dazu leisten. Nachfolgend sind meine Sessions aufgelistet. Darüber hinaus bin ich auch dieses Mal für den Agile-Track verantwortlich. Weitere Informationen gibt es unter www.basta.net.- Anforderungen in agilen Projekten Wie passt das zusammen? - Parallele Applikationen mit .NET 4 - Code Contracts in .NET 4: von 0 auf 100 - NHibernate vs. Entity Framework