1
訂單,並保存在這個方法需要訪問和編輯屬性在數據庫中創建
public async Task<ActionResult> FirstClassCreate(FormCollection values)
{
var order = new Order();
TryUpdateModel(order);
var customer = db.Users.FirstOrDefault(x => x.Email == User.Identity.Name);
var cart = ShoppingCart.GetCart(this.HttpContext);
try
{
order.DeliveryDate = DateTime.Now.AddDays(1);
order.DeliveryMethod = "First Class";
order.FirstName = customer.FirstName;
order.LastName = customer.LastName;
order.PostalCode = customer.PostalCode;
order.State = customer.State;
order.City = customer.City;
order.Email = customer.Email;
order.Country = customer.Country;
order.Phone = customer.PhoneNumber;
order.Address = customer.Address;
order.HasPaid = false;
order.Username = customer.Email;
order.OrderDate = DateTime.Now;
var currentUserId = User.Identity.GetUserId();
order.Total = cart.GetFirstClass();
if (order.SaveInfo && !order.Username.Equals("[email protected]"))
{
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var store = new UserStore<ApplicationUser>(new ApplicationDbContext());
var ctx = store.Context;
var currentUser = manager.FindById(User.Identity.GetUserId());
//Save this back
//http://stackoverflow.com/questions/20444022/updating-user-data-asp-net-identity
//var result = await UserManager.UpdateAsync(currentUser);
await ctx.SaveChangesAsync();
await storeDB.SaveChangesAsync();
}
//Save Order
storeDB.Orders.Add(order);
await storeDB.SaveChangesAsync();
//Process the order
cart = ShoppingCart.GetCart(this.HttpContext);
order.Total = cart.GetFirstClass();
order = cart.CreateOrder(order);
return RedirectToAction("FirstClass", "Checkouts", order);
}
catch
{
//Invalid - redisplay with errors
return View(order);
}
}
我需要訪問訂單數據庫,並更改特定順序的屬性,使用電子郵件作爲唯一標識符並搜索最新(使用訂單日期找到最新的,其中'haspaid' = false
)。
using()//Insert database context here)
{
//Search for order in the database, try using the email as the Unique Identifire and search for the newest where haspaid = false
//Change the haspaid attribute to true
var orders = from o in db.Orders
where o.Email == User.Identity.Name, o.HasPaid = false, //Newest
select o;
order.HasPaid = true;
db.Orders.SaveChanges();
//save database changes
}
您面臨什麼問題或者您希望某人代表您寫代碼? –
你的問題很不清楚。你這樣做的問題究竟是什麼?你有例外嗎?還是結果不存儲到數據庫?還有什麼是你的問題? – HimBromBeere
**獨特**意味着只有1個,您爲什麼需要進一步過濾?您的結構中是否沒有_ ** OrderID ** _? –