2010-10-19 9 views
1

I Haveâ modèle simple EF avec une entité de test et je veux utiliser des classes partielles pour ajouter la validation comme ceci:Entity Framework 4 et classe partielle Héritage

namespace WebApp.Model 
{ 
    using WebApp.BusinessRules; 
    using WebApp.BusinessRules.Rules; 
    using Microsoft.Practices.EnterpriseLibrary.Validation.Validators; 

    [HasSelfValidation] 
    public partial class Test : BusinessObject 
    { 
     public Test() 
     { 
      AddRule(new ValidateRequired("Title")); 
     } 
    } 
} 

Mais je reçois cette erreur:

Les déclarations partielles de 'Model.Test' ne doivent pas spécifier de classes de base différentes.

Je comprends l'erreur mais comment puis-je utiliser les modèles EF4 et avoir toujours accès à toutes mes qualités de validation commerciale? BusinessObject a toutes les validations et autres choses, donc si je peux les faire travailler ensemble, j'ai tout terminé. J'espère que quelqu'un peut aider.

Richard

+0

Ne pouvez-vous pas faire en sorte que BusinessObject hérite de la classe de base EF avant d'hériter de l'objet métier? – Jonn

Répondre

1

Avec votre configuration actuelle (en utilisant par défaut EF EntityObjects) il n'y a aucun moyen que vous pouvez obtenir vos entités héritent de BusinessObject. Au lieu de l'héritage, vous pouvez utiliser Composition, ce qui signifie que chaque classe partielle aura un champ BusinessObject. Si vous souhaitez conserver votre héritage, vous devez utiliser EF 4 POCO Entitie à la place, puis laisser vos objets POCO hériter de BusinessObject.