2011-10-07 2 views
0

J'ai une classe ECMContext qui hérite de DbContext. Dans ECMContext il y a une propriété MlaArticles qui est DbSet<MlaArticle>MlaArticle est héritée de WebObject. J'ai créé une méthode générique qui accepte un argument de type WebObject. La méthode essaie d'enregistrer les modifications apportées à la base de données et, dans le cas contraire, annule les modifications.C# Type Inférence

Ma question - puisque je l'ai déjà db (qui était déjà instanciée) et je sais que le type de WebObject qui est passé (MlaArticle dans cet exemple), est-il un moyen de se référer à la collection DbSet db.MlaArticles sans passer une argument supplémentaire? Je sais que cela est faux, mais ce exemplifie ma question ...

protected ECMContext db; 

void SaveChanges<T>(T obj) where T : WebObject 
{ 
    try { db.SaveChanges(); } 
    catch 
    { 
     db.MlaArticles.Remove(obj); //this is the original code 
     db.DbSet<T>.Remove(obj); //something like this is what I'd like to do 
    } 
} 

Répondre

2

Peut-on utiliser l'opération Set<T>():

try { db.SaveChanges(); } 
catch 
{ 
    db.Set<T>().Remove(obj); 
} 

?

+0

Oui, c'est ça. Merci Matthew – bflemi3

Questions connexes