diese Gegeben:LinqToSQL - Cast IQueryable Objekt zur Laufzeit?
var query = context.GetTable<T>();
Wo "T" ist eine generische Einheit in die Methode übergeben,
Ich mag würde, so etwas tun:
if(typeof(TEntity) is IEntitySoftDeletable)
query = query.Cast<IEntitySoftDeletable>.Where(ent => !ent.IsDeleted);
}
Ist das möglich?
Momentan sagt es mir, dass ich nicht auf diese Weise sprechen kann.
Ich realisiere, dass ich Parameter "T" zu einem IEntitySoftDeletable auf der Klassen- oder Methodenebene zwingen könnte, aber ich versuche das zu vermeiden und biete mehr Flexibilität von der gleichen Methode.
Implementiert T IEntitySoftDeletable? – bytebender
nicht immer ... T könnte eine beliebige Anzahl von Typen sein, von denen einige IEntitySoftDeletable implementieren. Was ich möchte ist ein Prädikat an die Abfrage anfügen, wenn * T ein IEntitySoftDeletable ist. Was ich vermeiden will, ist eine Überladung für dieses seperate Verhalten. –