2015-04-19 2 views
0

J'ai ma couche de logique applicative et mon couche d'accès aux données dans une DLL séparée, j'ai utilisé un modèle de design d'enregistrement actif pour construire mon bll ... maintenant J'ai besoin d'héberger mon bll et dal dans mon projet mvc .. J'ai essayé de faire des classes dans mes modèles et hérite de ses propriétés et méthodes de bll (qui dans une autre DLL) mais quand j'ai essayé d'assigner la classe de base à celle héritée me exceptionasp.net mvc comment lier la logique métier d'un autre projet à mon projet mvc asp.net

//Customer class located in mvc model folder which inhireted from EgxCustomer that located in bll in another project 
using Egx.EgxBusiness.Inventory; 
namespace EgxNMWeb.Models 
{ 
public class Customers:EgxCustomer 
{ 

} 
} 

//here i try to assign list of EgxCustomer to list of customer 
using Egx.EgxBusiness.Inventory; 
namespace EgxNMWeb.Models 
{ 
public class CPanelVM 
{ 
    Customers currentCustomer { get; set; } 
    List<Customers> AllNetwork { get; set; } 
    public CPanelVM() 
    { 
     AllNetwork = NMModel.GetCustomerNetwork(currentCustomer.CUST_CODE, Egx.EgxBusiness.Inventory.NM.REF_TYPE.ALL); 
    } 
    } 
    } 

ce que je peux faire pour utiliser mon bll qui est situé dans un autre projet dans mon projet mvc?

+0

Quelle est l'exception que vous obtenez? – Adarsha

+0

ne peut pas analyser du client à EgxCustomer –

Répondre

0

Vos classes de modèle ne sont pas nécessairement dans le dossier Modèles. C'est juste un moyen de former votre structure de code (bien que votre vue doit être dans le dossier Views par défaut). Vous pouvez directement utiliser vos modèles de couches de logique métier dans vos contrôleurs si vous le souhaitez.

Je pense que dans votre projet, vous pouvez placer des modèles d'affichage dans le dossier Modèles.

+0

et quel est le rôle de l'injection de dépendance ici et quand l'utiliser? –

+0

Vous pouvez utiliser un modèle d'injection de dépendance pour rendre votre code plus robuste et plus testable. Avec DI, vous séparez vos contrôleurs des classes concrètes BLL. Habituellement, les gens le font avec des interfaces de définition. À mon humble avis, vous n'avez pas besoin de définir des interfaces pour les entités POCO parce qu'ils n'ont pas de logique en eux. Mais c'est une bonne idée de définir une interface pour votre référentiel et de passer son interface au constructeur du contrôleur avec un conteneur de dépendances tel que Ninject. Jetez un oeil à ce lien pour plus d'informations: http://www.asp.net/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-dependency-injection – alisabzevari

+0

ok je comprends que DI seulement utilisé en cas de test unitaire? –