sql >> データベース >  >> RDS >> PostgreSQL

Entity FrameworkCore-WebAPIを介して渡されるエンティティのJSON表現に基づいて子を持つエンティティを更新する効率的な方法

    切断されたエンティティのグラフを操作しています。これがドキュメントセクション それはあなたにとって興味深いかもしれません。

    例:

    
    var existingCustomer = await loyalty.Customer
        .Include(c => c.ContactInformation)
        .Include(c => c.Address)
        .Include(c => c.MarketingPreferences)
        .Include(c => c.ContentTypePreferences)
        .Include(c => c.ExternalCards)
        .FirstOrDefault(c => c.McaId == customer.McaId);
    
    if (existingCustomer == null)
    {
        // Customer does not exist, insert new one
        loyalty.Add(customer);
    }
    else
    {
        // Customer exists, replace its property values
        loyalty.Entry(existingCustomer).CurrentValues.SetValues(customer);
    
        // Insert or update customer addresses
        foreach (var address in customer.Address)
        {
            var existingAddress = existingCustomer.Address.FirstOrDefault(a => a.AddressId == address.AddressId);
    
            if (existingAddress == null)
            {
                // Address does not exist, insert new one
                existingCustomer.Address.Add(address);
            }
            else
            {
                // Address exists, replace its property values
                loyalty.Entry(existingAddress).CurrentValues.SetValues(address);
            }
        }
    
        // Remove addresses not present in the updated customer
        foreach (var address in existingCustomer.Address)
        {
            if (!customer.Address.Any(a => a.AddressId == address.AddressId))
            {
                loyalty.Remove(address);
            }
        }
    }
    
    loyalty.SaveChanges();
    
    



    1. パスワードプロンプトなしでbashスクリプトでPostgreSQLCLI(psql)を実行しますか?

    2. PostgreSQLレプリケーションスロットの使用

    3. MySQLで関係を作成する方法

    4. 削除されたDockerコンテナからデータを回復する方法は?それをデータに再接続する方法は?