C# 用于发送客户电子邮件的数据持久性

C# 用于发送客户电子邮件的数据持久性,c#,C#,我正在开发一个系统来处理向客户发送事务性电子邮件的问题。 这就是它的工作原理: 1.订单生命周期内发生事件,例如“已发货” 2.此事件将触发在数据库中创建电子邮件(电子邮件队列) 3.一个单独的windows服务正在轮询db表以发送新电子邮件。当它找到一个时,它调用一个包含所有必需数据的Web服务。处理电子邮件的实际发送是Web服务的责任。 我的问题与第2步有关。 当发生电子邮件触发事件时,我应该对服务所需的所有数据进行快照(从而复制数据并引入新表),还是应该仅在准备调用Web服务时从事务数据库

我正在开发一个系统来处理向客户发送事务性电子邮件的问题。 这就是它的工作原理: 1.订单生命周期内发生事件,例如“已发货” 2.此事件将触发在数据库中创建电子邮件(电子邮件队列) 3.一个单独的windows服务正在轮询db表以发送新电子邮件。当它找到一个时,它调用一个包含所有必需数据的Web服务。处理电子邮件的实际发送是Web服务的责任。 我的问题与第2步有关。
当发生电子邮件触发事件时,我应该对服务所需的所有数据进行快照(从而复制数据并引入新表),还是应该仅在准备调用Web服务时从事务数据库表获取所需数据。

这完全取决于您的数据量。如果您有大量数据,请使用第一个解决方案,即在另一个单独的表中对数据进行反规范化(您可能有重复),然后发送电子邮件。

这个问题似乎与主题无关,因为它涉及软件设计,而不是实施过程中的问题。试试看。您想将您的邮件服务重新用于其他目的,还是只希望它能够对邮件订单进行更改?如果是前者,另一个过程应该检索数据并填写邮件正文,这样邮件服务就更简单了。我所涉及的部分仅仅是通知客户他们订单的状态,而不是其他。是否可以将该线程移动到另一个论坛?目前。它简化了实现和可测试性,以分离关注点。制作一个准备电子邮件正文的通知程序和一个只发送这些正文的邮件服务。不,你不能移动。问题是我根本不关心电子邮件的主体,我所做的只是将数据传递给Web服务。电子邮件模板等由另一个系统处理。我关心的仅仅是将电子邮件通知排队,并将所需的数据传递给Web服务。