我正在寻找使用entity framework 6 mysql更新记录的正确方法。
下面是我现在用的。
public void Update(User user)
{
using (var ctx = new DataSystemDbContext())
{
ctx.Users.Attach(user);
ctx.Entry(user).State = EntityState.Modified;
ctx.SaveChanges();
}
}
在我的单元测试中。
[TestMethod]
public async Task User_Update()
{
var userService = new UserService();
var user = userService.GetById(1);
user.FullName = "Test Fullname";
userService.Update(user);
var updatedUser = userService.GetById(1);
Assert.AreEqual(user.FullName, updatedUser.FullName);
}
当它执行时,我的所有用户记录都会更新。
这也和我的另一个帖子有关。但在我的另一篇文章中,它使用了一个真实的上下文,不像这个。
mysql entity framework 6更新首先影响所有行代码
1条答案
按热度按时间fkaflof61#
我通过注解掉或者不使用为crud生成的过程来修复这个问题。
生成的sql
我不确定mysql提供程序是否有bug。
实体框架v6.1.3
mysql.data.entity版本6.10.7
mysql.data版本6.10.7