C# 在ASP.NET Web Api上处理事务数据
我想为销售点构建服务器,它将位于Web Api asp.net之上 我的计划是有一个账单管理员。C# 在ASP.NET Web Api上处理事务数据,c#,design-patterns,transactions,asp.net-web-api,petapoco,C#,Design Patterns,Transactions,Asp.net Web Api,Petapoco,我想为销售点构建服务器,它将位于Web Api asp.net之上 我的计划是有一个账单管理员。 为了处理从web api post到sql server的账单,我计划使用micro ORM PetaPoco。 一张账单将在三个表中写入数据库。 PetaPoco催促我每桌有三个“POCO”。 我想在事务内部将这三个POCO写入数据库。 我如何设计我的控制器和类,使其看起来很好,也很好地工作 我应该吗 让我的控制器接受三(3)个类作为参数,这在asp.net web api上可能吗?我可以从一个请
为了处理从web api post到sql server的账单,我计划使用micro ORM PetaPoco。
一张账单将在三个表中写入数据库。 PetaPoco催促我每桌有三个“POCO”。
我想在事务内部将这三个POCO写入数据库。
我如何设计我的控制器和类,使其看起来很好,也很好地工作 我应该吗
我肯定会选择选项2——因为您的web客户端应该不知道实现细节——也就是说,您是坚持使用一个表还是3个表对客户端来说并不重要 控制器或服务方法如下所示(显然命名不太好-您必须根据您的域行话对其进行修改):
您应该阅读DTO模式,它将回答您的一些问题:
1.WebAPI支持它。
2.这听起来像是DTO,所以这是一个很好的解决方案,因为您向消费者隐藏了持久性模型。
3.没有必要强迫消费者打三个电话,每个电话都有自己的“基础设施”成本,所以最好是一个基础设施成本,而不是一个 如果你发布Web API签名和POCO类的结构,有人可能会帮助设计控制器类。是tree还是point 1上的three?@Fendy three作为数字3,Google drive my crazy whit拼写校正器。你可以从这里开始:它来自WebApi的竞争对手,因此,您将一次拍摄两件事—了解DTO和WebApi替代方案:)以下是DTO的原始描述:
public void AddBill(BillDTO bill)
{
//Map the DTO to your entities
var bill1 = mapper1.Map(bill);
var bill2 = mapper2.Map(bill);
var bill3 = mapper3.Map(bill);
//Open the transaction
using (var scope = db.Transaction)
{
// Do transacted updates here
db.Save(bill1);
db.Save(bill2);
db.Save(bill3);
// Commit
scope.Complete();
}
}