मेरे पास एक मॉडल है जो दिखता है:

public class Rack
{
    public int Id { get; set; }
    public int RackRow { get; set; }
    public int RackSize { get; set; }
    public int SystemId { get; set; }
    public System System { get; set; }
    public ICollection<Module> Modules { get; set; }
}

public class Module
{
    public int Id { get; set; }
    public byte ModuleSlot { get; set; }
    public string ModuleName { get; set; }
    public int RackId { get; set; }
    public Rack Rack { get; set; }
}

वे फ्लुएंटएपीआई में वास्तविकताओं से जुड़े हुए हैं जैसे:

modelBuilder.Entity<Entities.Module>().HasOne(entity => entity.Rack).WithMany(entity => entity.Modules).HasForeignKey(entity => entity.RackId);

अब मेरे पास WebApi में यह सरल अपडेट कमांड है:

    [HttpPut("systemId"), ActionName("UpdateRack")]
    public async Task<IActionResult> UpdateRack([FromBody]DTO.Rack requestInput, int systemId)
    {
        try
        {
            if (systemId == 0 || !requestInput.Id.HasValue) return StatusCode(StatusCodes.Status403Forbidden);
            var systemEntity = await this.systemService.GetSystem(systemId);
            if (systemEntity == null) return NotFound();

            systemEntity.Racks = this.mapper.Map(new List<DTO.Rack>{requestInput}, systemEntity.Racks);

            return Ok(await this.systemService.Update(systemEntity));
        }
        catch (Exception ex)
        {
            logger.Error(ex);
            return StatusCode(StatusCodes.Status500InternalServerError);
        }
    }

अब यह काम करता है, लेकिन जब मैं मॉड्यूल संग्रह में कुछ हटाता हूं या जोड़ता हूं तो इसे संसाधित नहीं किया जाता है, इसलिए मेरा प्रश्न है, क्या इकाई ढांचा कोर अद्यतन इकाई संग्रह संचालन में रिकॉर्ड जोड़ने या हटाने में सक्षम है?

1
Wojciech Szabowicz 17 जिंदा 2020, 13:31

1 उत्तर

सबसे बढ़िया उत्तर

EF Core अभी भी कर सकता है।

पहले रिकॉर्ड को अपडेट करने और नया रिकॉर्ड बनाने से पहले मेरी इकाई में कुल 2 हैं।

अपडेट करने और नया बनाने के बाद, कुल 3 और पहला रिकॉर्ड अपडेट किया जाता है।

enter image description here

1
Asherguru 19 जिंदा 2020, 02:55