C# asp.net mvc如何将业务逻辑从另一个项目绑定到我的asp.net mvc项目

C# asp.net mvc如何将业务逻辑从另一个项目绑定到我的asp.net mvc项目,c#,asp.net-mvc,asp.net-mvc-4,design-patterns,C#,Asp.net Mvc,Asp.net Mvc 4,Design Patterns,我有我的业务逻辑层和数据访问层在分开的dll,我使用活动记录设计模式来建立我的bll。。。现在我需要在我的mvc项目中托管我的bll和dal。。 我试图在我的模型中创建类,并从bll(另一个dll中的bll)继承它的属性和方法,但当我试图将基类分配给继承的类时,它给了我异常 //Customer class located in mvc model folder which inhireted from EgxCustomer that located in bll in another pro

我有我的业务逻辑层和数据访问层在分开的dll,我使用活动记录设计模式来建立我的bll。。。现在我需要在我的mvc项目中托管我的bll和dal。。 我试图在我的模型中创建类,并从bll(另一个dll中的bll)继承它的属性和方法,但当我试图将基类分配给继承的类时,它给了我异常

//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);
    }
   }
   }
//位于mvc model文件夹中的Customer类,该文件夹是从位于另一个项目的bll中的EgxCustomer生成的
使用Egx.EgxBusiness.Inventory;
名称空间EgxNMWeb.Models
{
公共类客户:EgxCustomer
{
}
}
//在这里,我尝试将EgxCustomer列表分配给customer列表
使用Egx.EgxBusiness.Inventory;
名称空间EgxNMWeb.Models
{
公共类CPanelVM
{
客户当前客户{get;set;}
列出所有网络{get;set;}
公共CPanelVM()
{
AllNetwork=NMModel.GetCustomerNetwork(currentCustomer.CUST_CODE,Egx.EgxBusiness.Inventory.NM.REF_TYPE.ALL);
}
}
}

如何使用位于mvc项目中另一个项目中的bll

您的模型类不需要位于Models文件夹中。这只是形成代码结构的一种方式(尽管默认情况下视图必须位于Views文件夹中)。如果需要,可以在控制器中直接使用业务逻辑层模型


我认为在您的项目中,您可以将视图模型放在models文件夹中。

您得到的异常是什么?无法从Customer解析到EgxCustomer,依赖项注入在此处的作用是什么以及何时使用它?您可以使用依赖项注入模式使代码更加健壮和可测试。使用DI,您可以将控制器从BLL具体类中分离出来。通常人们通过定义接口来实现这一点。IMHO您不需要为POCO实体定义接口,因为它们没有逻辑。但最好为存储库定义一个接口,并使用依赖容器(如Ninject)将其接口传递给控制器构造函数。查看此链接了解更多信息:在我发送的文章中提到:使用依赖项注入模式和控制反转的优点如下:减少类耦合,增加代码重用,提高代码可维护性,改进应用程序测试