更新实体1-1实体框架核心

时间:2019-10-19 02:49:07

标签: c# entity-framework-core

    public async Task SaveAsync(Cliente cliente)
    {
        if (cliente.Id == Guid.Empty)
        {
            _cadastroContext.Clientes.Add(cliente);
        }
        else
        {
            _cadastroContext.Clientes.Update(cliente);
        }

        await _cadastroContext.SaveChangesAsync();
    }

Cliente类与Conta类具有1-1的关系,当我保存新记录时,两个类将同时保存,但是当我更新时,它不会更新为Conta类。

执行Update命令后,Conta类的属性与数据库中的属性相同,而与发送的属性不同。

如何更新两个复合类?

1 个答案:

答案 0 :(得分:1)

  

在更新clientes对象之前,您需要include conta对象。

public async Task SaveAsync(Cliente cliente) 
{
    ... code ommited for brevity
    else 
    {
        var savedCliente = _cadastroContext.Include(c => c.Conta).FirstOrDefault(c = c.Id == cliente.Id);
        savedCliente = cliente;

        _cadastroContext.Update(savedCliente);
        await _cadastroContext.SaveChangesAsync()
    }