【发布时间】:2015-07-25 07:56:35
【问题描述】:
我是 EF 新手,我正在尝试了解处理插入和更新数据的最佳方式。就某些情况而言,我正在使用 .net mvc 网站样板,并且我创建了一个与 aspnetusers 具有 1:1 关系的客户表。我创建了一个视图来管理客户数据。
这是我的 HttpPost ActionResult:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> AddCard(External.Stripe.Customer customer)
{
if (!ModelState.IsValid)
{
return View(customer);
}
External.Stripe.CustomerOperations co = new External.Stripe.CustomerOperations();
customer = co.Create(customer);
var user = UserManager.FindById(User.Identity.GetUserId());
customer.UserId = user.Id;
var context = new External.Stripe.CustomerContext();
context.Customers.Add(customer);
context.SaveChanges();
return RedirectToAction("Index", "Manage");
}
我觉得我走错了路,因为如果我对客户模型进行任何更新,我实际上需要检查 EF 是否我的密钥已经存在,如果存在,则改为运行更新。我认为如果需要更新,EF 会有一种保存模型的本机方式。我也不知道这是否是我坚持我的模型的地方,或者它是否更好地放在我的代码中的其他地方。
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
谢谢约翰,以后会记住这一点
标签: c# asp.net asp.net-mvc entity-framework