PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Entity Framework Core - cara efisien untuk memperbarui Entitas yang memiliki anak berdasarkan representasi JSON dari entitas yang diteruskan melalui Web API

Anda bekerja dengan grafik entitas yang terputus. Berikut adalah bagian dokumentasi yang mungkin menarik bagi Anda.

Contoh:


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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - menerapkan antrian yang andal

  2. Server yang tersebar secara geografis, PostgreSQL, dan JPA

  3. tidak dapat membuat ekstensi tanpa peran pengguna super

  4. Versi Postgres tidak kompatibel

  5. Mendapatkan kunci yang dibuat secara otomatis dari penyisipan baris di musim semi 3 / PostgreSQL 8.4.9