C# SaveChanges返回0,并且根本不保存数据
实体框架的C# SaveChanges返回0,并且根本不保存数据,c#,entity-framework,C#,Entity Framework,实体框架的SaveChanges()方法遇到了一个奇怪的问题。问题是它返回0,并且根本不更新表数据。问题可能是什么?有什么想法吗?我必须更新现有的用户数据 [HttpPost] [Authorize(Roles = "User")] public ActionResult Settings(User _users) { using (MydbEntities db = new MydbEntities()) { var u = new User();
SaveChanges()
方法遇到了一个奇怪的问题。问题是它返回0,并且根本不更新表数据。问题可能是什么?有什么想法吗?我必须更新现有的用户数据
[HttpPost]
[Authorize(Roles = "User")]
public ActionResult Settings(User _users)
{
using (MydbEntities db = new MydbEntities())
{
var u = new User();
string _Email = User.Identity.GetUserId().ToString();
if(db.Users.Any(x=>x.Email == _Email))
{
u.BusinessName = _users.BusinessName;
u.Address = _users.Address;
u.VatNumber = _users.VatNumber;
u.PhoneNumber = _users.PhoneNumber;
u.IsBusinessUser = _users.IsBusinessUser;
var foo = db.SaveChanges();
}
}
}
我相信您正在尝试的是加载现有用户,如果它存在,则更新它
请尝试以下代码:
[HttpPost]
[Authorize(Roles = "User")]
public ActionResult Settings(User _users)
{
using (MydbEntities db = new MydbEntities())
{
string _Email = User.Identity.GetUserId().ToString();
// try to find the existing user in the database
User existing = db.Users.FirstOrDefault(x => x.Email == _Email);
if(existing != null)
{
// if you *DID* find a user - then update its properties
existing.BusinessName = _users.BusinessName;
existing.Address = _users.Address;
existing.VatNumber = _users.VatNumber;
existing.PhoneNumber = _users.PhoneNumber;
existing.IsBusinessUser = _users.IsBusinessUser;
var foo = db.SaveChanges();
}
}
}
首先,您加载现有用户,如果找到了一个,则更新其属性,现在SaveChanges()
调用应该为您更新该现有用户