我正在开发ASP.NET MVC,C#和LINQ to SQL中的三明治订购应用程序。该应用程序围绕用户,从多种配料中创建多个定制三明治。
在确认订单时,我需要知道每种成分都有足够的份量来满足用户订单中的所有三明治,因为我可能会在将成分添加到他们之间之前将其缺货。购物篮并确认订单。
关于数据库的一点点:
成分 –存储成分详细信息,包括份数
订单 –订单的表头,只存储订单时间
OrderDetail –存储订单中每个三明治的记录
OrderDetailItem –按订单将每种成分存储在每个三明治中
因此,基本上,我想知道在将记录添加到Order,OrderDetail和OrderDetailItem之前可以确保满足订单的最佳方法是什么。
最佳答案
try
{
Begin netTransaction();
If (IsEnoughIngredients())
{
1. Build your sandwich
2. Add sandwich to data context with a timestamp (or whatever you chose for concurrency checking)
3. SubmitChangesToDataContext()
4. CommitNetTransaction()
}
} catch (Exception e)
{
Rollback netTransaction();
InformUser();
}