首先,您的 Asp.Net MVC 项目中的 Model 文件夹应该用于 ViewModel。这些是控制器发送到视图的模型。它们应该针对 View 进行高度优化,这意味着只有 View 所需的属性,没有别的。
您所从事的领域模型与业务模型相同,属于您的业务层。Asp.Net MVC 项目中的 Model 文件夹是 UI 层的模型。
第二种方法,您的服务(真正的业务)层中的业务逻辑并不被认为是坏的。它是您的数据层和 UI 层(3 层架构)之间的一个非常好的缓冲区。您的数据层负责从 Web 服务或数据库获取数据,而您的业务/服务层负责将这些数据转换为业务/域模型。它还包含任何业务逻辑,例如计算等。
这些业务/领域模型通常是 POCO,但并非必须如此。这就是我有时设置商业模式的方式:
public class BusinessObject
{
private DataObject _dataObject;
public BusinessObject(DataObject dataObject)
{
_dataObject = dataObject;
}
public int BusinessId
{
get {return _dataObject.Id;}
set {_dataObject.Id = value;}
}
public string Name
{
get {return _dataObject.Description;}
set {_dataObject.Description = value;}
}
}