Bonjour, le titre de mon sujet est peu-être peu explicite mais voici en détail ce qu'il veut dire :
Dans une application WPF j'ai ajout un Datacontext Entityframework qui contient notamment cette table :
j'ai ensuite crée un Generic ripository comme suit :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public class GenericDbContext<T> : IGenericDbContext<T> where T : class
{
private readonly KEPTEntities dc = null;
private readonly DbSet<T> table = null;
public void Delete(object id)
{
T existing = table.Find(id);
table.Remove(existing);
}
public IEnumerable<T> GetAllData()
{
return table.ToList();
}
public T GetDataById(object id)
{
return table.Find(id);
}
public void Insert(T obj)
{
table.Add(obj);
}
public void Save()
{
dc.SaveChanges();
}
public void Update(T obj)
{
table.Attach(obj);
dc.Entry(obj).State = System.Data.EntityState.Modified;
}
public GenericDbContext()
{
dc = new KEPTEntities();
table = dc.Set<T>();
}
} |
La méthode qui va nous interesser est : T GetDataById(object id);
J'ai ensuite une classe (KeepQueries) qui référence cette méthode dans laquelle on trouve cette méthode :
1 2 3 4
| public static string GetSpecificDocEntData(string id, object field)
{
return docEnt.GetDataById(id).DE_LIB;
} |
Et cette méthode est utilisé plus loin dans mon application comme ceci :
KeepQueries.GetSpecificDocEntData("APPART", null);
Ce que je cherche a faire c'est utilisé mon object field pour que l'utilisateur puisse choisir n'importe quel champ de la table basé sur l'ID.
Exemple (qui ne fonctionne pas bien sur):
Dans la classe KeepQueries :
1 2 3 4
| public static string GetSpecificDocEntData(string id, object field)
{
return docEnt.GetDataById(id).[field];
} |
et plus loin dans l'application :
KeepQueries.GetSpecificDocEntData("APPART", "DE_PATH");
Comment dois-je modifier mon code pour que cela fonctionne ?
Partager