我已经阅读了这篇文章,并对此感到疑惑。
我的应用程序包含4个层:
- Web项目/用户界面
- BLL
- DAL(包含EF)
- 实体层
目前,我将VM放置在UI层中,它是不同类的组合。就像这样:
public class CompanyVMIndex
{
public CompanyVM Company { get; set; }
public BillingAddressVM BillingAddress { get; set; }
public List<ShippingAddressVM> ShippingAddress { get; set; }
public List<CompanyContactVM> CompanyContact { get; set; }
}
我现在很困惑,不知道如何将数据从UI发送到BLL再到DAL。我读过自动映射器,但它是否处理这种情况?如果是,那么怎么做呢?
目前,我已经决定将VMs移动到实体层,该层将连接所有三个层,以便我可以在同一位置发送和接收数据,有其他好的想法吗?
这是我从UI传递数据到BLL的方式。
public ActionResult Create(CompanyVMIndex companyVM)
{
if (ModelState.IsValid)
{
//Calling BLL here
BLLFunction(companyVM)
}
return View("Index");
}
在BLL中使用类似的Automapper技术,在DAL中也需要类似的操作。
public int BLLfunction(CompanyVMIndex CompanyVM)
{
}
现在,由于BLL没有CompanyVMIndex的定义(它是一个VM),我该如何传递数据到Web UI中?