简单的LINQ到SQL查询可能会返回产品对象。好说,我可以将此对象传递到我的业务层,然后直接读取和更新数据,并针对该对象。

我已经看到了一堆实现,其中遵循LINQ查询的执行,将结果对象(通过AutoMapper或手动)映射到自定义业务对象。因此,在我可能具有Linq对象的产品的情况下:

product.productid and product.productName

然后,我将定义一个自定义产品业务对象:

class BusineszProduct
{
    string ProductId;
    string ProductName;
}

以及一些简单的映射代码,例如:

BusinessProduct myproduct = new BusinessProduct(); myproduct.productid = product.productid; myproduct.productName = product.productName;

然后通过我的业务层传递myproduct,对其进行修改,阅读等等,然后更新LINQ对象。

在哪些情况下,我想创建自定义商业产品类?

有帮助吗?

解决方案

恕我直言,一般原因是将您的业务实体与LINQ2SQL附带的LINQ2SQL ORM BAGGAGE解散 /解散您的业务实体

但是,在极端情况下,您可能会有多个映射:

  • “数据访问”层的LINQ2SQL实体 - 但是它们紧密耦合到L2S DataContext
  • POCOS /业务实体将用于业务规则申请,验证等
  • 如果您使用的是Web服务或WCF,则可以将数据表示为消息实体,例如,如果您需要以非常特定的格式呈现它们在电线上序列化时的实体
  • 最后,如果您有MVC / MVP / MVVM UI体系结构,则可能需要为您的视图量身定制的实体

其他提示

在我的应用程序中,我进行了一个LINQ查询,该查询连接了六个不同的表,并提供了每一列的几列。没有匹配该信息集的特定对象类型。因此,我创建一个自定义商务类来处理记录集。

您可以自己查看(在 http://www.njtheater.org)

我从 Productions 按日期表。它加入了播放桌(我获得标题和描述的地方),剧团桌(我得到剧院公司名称),场地桌(我得到剧院名称和城市)。播放表连接到了加入People Table的PlayCredits桌子(我得到剧作家的名字)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top