J'ai un scénario avec deux applications différentes partageant la même base de données. Pour les deux applications, j'utilise Code First EF 4.1. Ces deux applications partagent également une bibliothèque commune. Tout va bien jusqu'à ce que je commence à ajouter l'héritage spécifique à l'application. Par exemple, dire que j'ai une classe dans la bibliothèque partagée comme celui-ciCode Premier héritage EF 4.1 sur plusieurs applications
public class Customer
{
public CustomerOrder Order;
}
Et puis, dans une application, je hérite CustomerOrder d'ajouter quelques fonctionnalités personnalisées nécessaires à l'application.
public class EditableCustomerOrder: CustomerOrder
{
public void Edit() {};
}
Dans cette application, je souhaite que tous mes CustomerOrders se chargent en tant que EditableCustomerOrders. Cependant, je ne peux pas trouver un moyen de spécifier dans le mappage qu'il doit ignorer CustomerOrder et mapper uniquement EditableCustomerOrder à la table sous-jacente.
J'ai essayé
modelBuilder.Ignore<CustomerOrder>();
mais qui omet la propriété ordre du client, donc je ne peux pas l'utiliser. Le seul moyen d'obtenir ce résultat est d'utiliser des génériques, de sorte que le client utilise un générique pour son type CustomerOrder, puis j'implémente le client dans l'application pour spécifier qu'il utilise EditableCustomerOrder. Cependant, cette solution peut se développer assez rapidement, avec des génériques partout.
Est ce que j'essaye de faire possible? Fondamentalement, j'essaie de dire à l'entité que, même s'il existe un type de base et un type étendu, je veux qu'il utilise uniquement le type étendu.