J'ai un un référentiel générique je tente d'ajouter une méthode GetById comme indiqué ici C# LINQ to SQL: Refactoring this Generic GetByID methoddépôt EF4 générique CTP5 getById
Le problème est mon dépôt n'utilise pas System.Data.Linq.DataContext à la place que j'utilise System.Data.Entity.DbContext
Je reçois des erreurs où je tente d'utiliser
Mapping.GetMetaType
et
return _set.Where(whereExpression).Single();
Comment puis-je implémenter une méthode générique GetById dans CTP5? Devrais-je utiliser System.Data.Entity.DbContext dans mon Repository.
Voici le début de ma classe référentiel
public class BaseRepository<T> where T : class
{
private DbContext _context;
private readonly DbSet<T> _set;
public BaseRepository()
{
_context = new MyDBContext();
_set = _context.Set<T>();
}
Excellent, merci pour expliquer les nombreuses approches. Ils semblent tous fonctionner correctement en dehors de _set.FindBy je ne peux pas trouver cette méthode sur System.Data.Entity.DBSet – Daveo
Il est typo :) Il devrait être 'Find' –
@Ladislav Mrnka: Dans votre premier exemple, où vous fournissez params object [] clés de la méthode GetById, Dans le cas où il y a 2 champs comme clés primaires, comment mappez-vous dans Rechercher chaque clé dans le champ concerné? – Naor