2011-01-04 6 views
0

In Unterschall 2 konnten wir dies tun:Subsonic Löschen Mit Fluent Abfrage-Tool

public static void DeleteTable(SubSonic.TableSchema.Table table) 
{ 
    new Delete().From(table).Execute(); 
} 

Wie können wir die gleiche Sache in v3 tun? Ich kann nur scheinen, Dokumentation über das Verwenden von Generika zu finden, um auf eine bestimmte Tabelle in der Datenbank zu zielen ... Ich will in der Lage sein, es mit einem Parameter wie oben zu verwenden.

Danke

Antwort

1

Ich habe es. Dies scheint den Trick zu tun:

public static void DeleteTable(DatabaseTable table) 
{ 
    new Delete<object>(table, table.Provider).Execute(); 
} 
+0

Ich weiß nicht Subsonic, aber Löschen scheint mir falsch. Sind Sie sicher, dass es nicht Delete (Tabelle) ist. Execute(); – kenny

+0

Das funktioniert, das Problem ist, dass die Designer diese Methode nur für Generika implementiert haben, ich kann keine Generika verwenden .... weil ich das löschen möchte .... generisch (ho die Ironie). Es scheint, dass, wenn Sie die delete-Überladung verwenden, die die Datenbanktabelle als Parameter akzeptiert die Methode ignoriert T – Luis

0

Sie verwenden die SimpleRepository.DeleteMany Methode irgendwie wie diese

var repo = new SimpleRepository("ConnectionString"); 
repo.DeleteMany<YourClass>(x => true); 

Oder (nach dem Kommentar zu lesen) so ähnlich

public static void DeleteTable(DatabaseTable table) 
{ 
    new SubSonic.Query.Delete<object>(table, ProviderFactory.GetProvider()); 
} 

die generische type "object" wird verwendet, weil Delete einen Typ übergeben möchte, der nicht verwendet wird, wenn wir ihn mit einer Tabelle und einem Provider erstellen.

+0

Dies wird nicht funktionieren, da es mir nur erlauben wird, es für meine YourClass-Entität zu verwenden, möchte ich eine Methode, die einen Parameter akzeptieren kann Datenbanktabelle – Luis