Je vois l'une des façons dont les gens testent des solutions basées sur EntityFramework (code first) est de créer une interface pour leur contexte personnalisé qui contient des propriétés de type IDbSet (au lieu de DbSet). Ensuite, dans les tests unitaires, ils utilisent des InMemoryDbSets.
Je suis nouveau dans EntityFramework et cela semblait être une excellente façon de le faire. Mais cela ne fonctionne pas du tout, n'est-ce pas? Lorsque nous utilisons des InMemoryDbSets, nous pouvons créer et exécuter des requêtes qui utilisent n'importe laquelle des propriétés de nos objets entité. Même si ce sont des propriétés calculées. Mais pendant l'exécution, les mêmes requêtes afficheront "Le membre de type spécifié 'NomDeLaPropriété' n'est pas pris en charge dans LINQ to Entities. Seuls les initialiseurs, les membres d'entité et les propriétés de navigation d'entité sont pris en charge."
Donc soit je ne comprends pas quelque chose (probablement), soit il n'est pas possible de tester unitairement du tout si vous utilisez un contexte personnalisé avec IDbSets.