我只需要在SQL中更改已保存在我的数据库中的一些数据。
这是我的代码:
var userData = new MinciUsers
{
ApplicationUserId = stringUserId,
Name = userUnity.firstName,
LastName = userUnity.lastName,
DateOfBirth = date,
Address = userUnity.address,
CityId = null,
CountryId = null,
LanguageId = null,
};
dbContext.MinciUsers.Add(userData);
dbContext.SaveData();
当我更改某些数据时,它会抛出错误,因为主键已经存在。
我在更改数据时如何使用SaveChanges()
?
答案 0 :(得分:0)
一种方法是首先从数据库中获取相应的对象,然后通过指定新值来更改其状态。最后,您在相应的上下文类上调用SaveChanges
以保留更改。
例如,如果主键在您的应用程序中表示为Id:
var minciUser = dbContext.MinciUsers.SingleOrDefault(m => m.Id == 1);
if(minciUser != null)
{
// The record with Id 1 has been found. So you can change it's state.
minciUser.ApplicationUserId = stringUserId;
// here you will add the rest of the fields you want to update.
dbContext.SaveChagnes();
}
<强>更新强>
另一种方法是使用AddOrUpdate:
var userData = new MinciUsers
{
ApplicationUserId = stringUserId,
Name = userUnity.firstName,
LastName = userUnity.lastName,
DateOfBirth = date,
Address = userUnity.address,
CityId = null,
CountryId = null,
LanguageId = null,
};
dbContext.MinciUsers.AddOrUpdate(userData);
dbContext.SaveChanges();