Я написал SQL-запрос что-то вроде:
UPDATE Product
SET QtyLeft = Product.QtyLeft - BookingItem.Qty
FROM BookingItem
JOIN Product
ON BookingItem.ProductID = Product.ID
WHERE (BookingItem.BookingID = @bookingID)
Что я хочу сделать, так это запустить этот запрос при бронировании. StatusId имеет значение True, поэтому оно должно выглядеть следующим образом:
if(booking.StatusId == True) { //run the Query} else { do something else}
Технологии, которые я использую:
MVC 2
EF 4
Отредактировано: я сделал что-то вроде:
using (ApextrackdaysEntities entities = new ApextrackdaysEntities())
{
IBookingItems bookingItemResp = new BookingItemRepository();
IQueryable<BookingItem> bookingItem = bookingItemResp.GetAllBookingItem(booking.ID);
foreach (BookingItem items in bookingItem)
{
int productID = items.ProductID;
IProductRepository prodResp = new ProductRepository();
Product products = prodResp.GetProductsByID(productID);
products.QtyLeft = products.QtyLeft - items.Qty;
prodResp.Save();
}
}
Я хочу знать, как я могу добиться этого с помощью EF, следует ли создать для него процедуру хранения или Linq To Sql, любые предложения или альтернативы будут высоко оценены.