PetShop 4.0 项目中实体类(Model项目)通常对应数据库中的一个表,然后数据访问层(IDAL/SQLServerDAL等项目)解决实体类与数据库的相互作用,业务逻辑层解决业务与实体类的相互作用,例如:---------------------------------------
// 数据库中定义产品表:
Table Product// Model中定义实体类:
class ProductInfo
{
  // 其属性基本对应数据库产品表
}
  
// 数据访问层SqlServerDAL定义了:
class Product
{
  // 以实体类ProductInfo作为输入或者输出,将数据库操作封装在class里面
}// 业务逻辑层BLL定义了:
class Product
{
  // 以实体类ProductInfo作为输入或者输出,处理业务逻辑
  // 通过数据访问层处理数据库,实现与数据库隔离
}
-------------------------------以上的结构是很清晰,但实际应用中我遇到下面的问题,也举例说明:
// 表现层有时候需要产品名录/目录/详细列表
// 其区别在于:
// 名录:仅需要获取产品名
// 目录:仅需要几个字段
// 详细列表:需要实体所有信息按我对数据库的了解,仅Select需要的字段可以获取更高的效率
但现在表现层都仅与业务逻辑层交互,其输入输出都是实体类ProductInfo// 具体情形是:
// 表现层访问:
// IList<ProductInfo> PetShop.BLL.Product.GetProductsByCategory(string category)
// 业务逻辑层访问:
// IList<ProductInfo> PetShop.SqlServerDAL.Product.GetProductsByCategory(string category)这样的作名录/目录的时候是否有性能损失
这个损失有办法挽救吗?或者需要挽救吗?// 业务逻辑层会