Как обновить запись с помощью Entity Framework 6 MySQL

0

Я ищу правильный способ обновления записи с использованием 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 Обновление, влияющее на все строки Code First

  • 0
    Пожалуйста, покажите, какие операторы SQL UPDATE выполняются.
  • 0
    что вы имеете в виду? вы хотите увидеть сгенерированный sql Enttiy Framework. Entity Framework вызывает процедуру User_Update, но забыть включить предложение where с идентификатором.
Показать ещё 1 комментарий
Теги:
entity-framework
entity-framework-6

1 ответ

0

Я исправил эту проблему, комментируя или не используя сгенерированную процедуру для CRUD.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
     base.OnModelCreating(modelBuilder);    
     // Mapp all entities in a single line.    
     //modelBuilder.Types().Configure(t => t.MapToStoredProcedures());
}

Сгенерированный SQL

UPDATE 'Users' SET 'Email'=@gp1 WHERE 'Id' = 6
-- @gp1: '[email protected]' (Type = String, IsNullable = false, Size = 17)
-- Executing asynchronously at 25/06/2018 8:30:21 AM +08:00
-- Completed in 2 ms with result: 1

Я не уверен, есть ли у MySQL-провайдера ошибка или нет.

  • Entity Framework v6.1.3
  • MySQL.Data.Entity v6.10.7
  • MySQL.Data v6.10.7

Ещё вопросы

Сообщество Overcoder
Наверх
Меню