2016-03-30 10 views
0

Ich habe diese Funktion, Abfragen auf der Grundlage einer customerId und entityModel. Ich möchte es für alle verschiedenen Modelle generisch machen. Mit anderen Worten, ich möchte CustomerFeatureEntity Klasse als Parameter in diese Funktion zu übergeben:Übergeben eines generischen Parameters in eine Funktion, die eine spezifische Vererbung hat

public TableQuery<CustomerFeatureEntity> StorageQuery(string customerId) 
{ 
    TableQuery<CustomerFeatureEntity> query = new TableQuery<CustomerFeatureEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, customerId)); 
} 

Auch wäre es schön, wenn ich sicher, dass Parameter Vererbung von TableEntity Klasse. Ist eine dieser Möglichkeiten in C# möglich?

Antwort

1

Ja, Sie müssten es nur neu definieren, um Generika mit einer Where-Einschränkung zu verwenden.

public TableQuery<T> StorageQuery<T>(string customerId) where T : TableEntity 
{ 
    TableQuery<T> query = new TableQuery<T>() 
     .Where(TableQuery.GenerateFilterCondition("PartitionKey", 
      QueryComparisons.Equal, customerId)); 
} 
+0

Das war schnell David. Vielen Dank. – Yar

+0

@HoomanYar Gerne helfen! –

Verwandte Themen