EFTracingProvider und die NotSupportedException bei ExecuteStoreQuery<T>

Auf den ersten Blick sind die Tracing and Caching Provider Wrappers for Entity Framework sehr interessant. Der sofortige Einsatz kann jedoch sehr herausfordernd werden. Da aber dieses Projekt mit Sourcecode bereitgestellt wird, besteht die Möglichkeit, die Ecken und Kanten zu begradigen. ;-) 

In der aktuellen Version führt die Verwendung von ExecuteStoreQuery bzw. ExecuteStoreCommand zu einer NotSupportedException. Die Ursache hierfür liegt in der Solution EFProviderWrapperToolkit. In der Klasse DbConnectionWrapper hat die Methode CreateDbCommand folgenden Inhalt:

C# (Line 271 DbConnectionWrapper.cs)
protected override DbCommand CreateDbCommand()
{
    throw new NotSupportedException();
}

Um diese Methode nun zum Leben zur erwecken, muss nur die Methode der verpackten Verbindung aufgerufen werden. Wenn das erledigt ist, hat die Methode folgenden Inhalt:

C# (Line 271 DbConnectionWrapper.cs korrigiert)
protected override DbCommand CreateDbCommand()
{
    return this.WrappedConnection.CreateCommand();
}

Nach der Neuerstellung und ggf. dem Anpassen der Referenzen funktioniert dann auch ExecuteStoreQuery und –Command mit dem EFTracingProvider. Eigentlich keine grosse Sache, diese Korrektur. ;-)

Es lohnt sich auf jeden Fall, diese Wrapper einmal auszuprobieren.

  •  
  • 1 Kommentar(e)
  •  
Gravatar: TimTim
24.01.2011
20:40
Developer

Thanks. Taht is exactly what I needed.

Mein Kommentar

Ich möchte über jeden weiteren Kommentar in diesem Post benachrichtigt werden.

Zurück

Translate this page

Kategorien