0

Je travaille avec EF 4 et un modèle de référentiel. Dans mes aventures en essayant de tester mon contexte de données EF, je suis tombé sur le modèle ADO.Net Mocking Context Generator, qui, comme son nom l'indique, aide à se moquer du contexte de données.Interface du générateur de contextes de contournement ADO.Net Problème

Alors que mon contexte se construit bien, j'ai des problèmes avec mon dépôt et c'est un peu un mystère. Voici mon interface référentiel (en abrégé):

public interface IRepository<T> where T : class 
{ 
    /// <summary> 
    /// Finds all entities 
    /// </summary> 
    /// <returns></returns> 
    IQueryable<T> Find(); 

    /// <summary> 
    /// Find alls entities and loads included relational properties. 
    /// </summary> 
    /// <param name="includes">Relational properties to load.</param> 
    /// <returns></returns> 
    IQueryable<T> Find(params Expression<Func<T, object>>[] includes); 

    /// <summary> 
    /// Adds an entity to the repository. 
    /// </summary> 
    /// <param name="entity">Entity to add.</param> 
    void Add(T entity); 

    /// <summary> 
    /// Updates an entity in the repository. 
    /// </summary> 
    /// <param name="entity">Entity to update.</param> 
    void Update(T entity)...etc 

Avec le contexte simulé, vous obtenez un nouvel ensemble d'entités générées avec des propriétés virtuelles. J'ai donné à ces entités le même espace de noms que mes entités réelles dans le but de se moquer d'elles et ce sont des types identiques à mes réels avec seulement une référence aux entités fictives. Le problème est lorsque j'ai une implémentation de mon interface de dépôt, je reçois des exceptions d'interface non implémentées, même si je suis en train de mettre en œuvre l'interface. Cela se produit uniquement lorsque j'essaie de générer le projet. Intellisense pense que tout va bien (c'est-à-dire, pas de petite flèche sous l'interface me disant que je dois l'implémenter). Ci-dessous une implémentation de l'interface via mon interface ICategoryLocalized (hérite de IRepository).

public class CategoryLocalizedRepository : MockDatabaseRepository, ICategoryLocalizedRepository 
{ 
    #region Constructor 

    public CategoryLocalizedRepository(MockContext context) 
     : base(context) 
    { 
    } 

    #endregion 

    #region Data Methods 

    public IQueryable<CategoryLocalized> Find() 
    { 
     return Context.CategoryLocalized; 
    } 

    public IQueryable<CategoryLocalized> Find(params Expression<Func<CategoryLocalized, object>>[] includes) 
    { 
     return CreateObjectQuery<CategoryLocalized>(Context.CategoryLocalized, includes); 
    } 

    public CategoryLocalized Get(int id) 
    { 
     return Context.CategoryLocalized.SingleOrDefault(d => d.CategoryLocalizedID == id); 
    } 

    public CategoryLocalized Get(int id, params Expression<Func<CategoryLocalized, object>>[] includes) 
    { 
     IObjectSet<CategoryLocalized> query = CreateObjectQuery<CategoryLocalized>(Context.CategoryLocalized, includes); 
     return query.SingleOrDefault(d => d.CategoryLocalizedID == id); 
    } 

    public void Add(CategoryLocalized categoryLocal) 
    { 
     AddEntity<CategoryLocalized>(Context.CategoryLocalized, categoryLocal); 
    } 

    public void Update(CategoryLocalized categoryLocal) 
    { 
     UpdateEntity<CategoryLocalized>(Context.CategoryLocalized, categoryLocal); 
    }...etc 

Je ne sais pas pourquoi le compilateur dit que l'interface (IRepository) ne sont pas mis en œuvre CategoryLocalizedRepository lorsqu'il est clairement.

+0

Ceci est probablement juste une photo dans le noir, mais essayez des implémentations explicites. – Divi

+1

Est-ce qu'il se plaint de certaines méthodes ou tous? Aussi pourriez-vous poster la définition de ICategoryLocalizedRepository? –

+0

J'ai essayé d'implémenter explicitement chacune des interfaces mais j'ai eu le même problème. @amit_g: il se plaint de TOUTES les méthodes à chaque fois. –

Répondre

0

Il s'avère que j'avais une référence à un autre ensemble d'entités dans mon référentiel et une référence à un ensemble différent dans mon projet de données de simulation.

Questions connexes