ventajas usar tutorial que porque mvc framework first espaƱol ejemplo desventajas code c# sql-server entity-framework-6

c# - tutorial - porque usar entity framework



Tabla de sincronizaciĆ³n de Entity Framework 6 con fuente externa (1)

Estoy construyendo un servicio de Windows para extraer todas las redes de una API de terceros e insertar / actualizar esas redes en nuestra base de datos local. Aquí está mi Entidad:

public partial class Networks { public string networkID { get; set; } public int organizationID { get; set; } public string type { get; set; } public string name { get; set; } public string time_zone { get; set; } public string tags { get; set; } }

Actualmente, repito a través de todas las redes devueltas por la API, compruebo si la identificación existe, si comprueba cada campo y si alguno de los campos no coincide, actualícelos todos.

public void SyncNetworks() { List<Networks> all_networks = APICaller.GetNetworkList(); foreach(var network_from_api in all_networks) { var network_in_database = db.it_asset_meraki_networks.FirstOrDefault( n => n.network_id == network_from_api.network_id); if (network_in_database == null) db.it_asset_meraki_networks.Add(network_in_meraki); else CheckAndSyncNetworkFields(network_from_api, network_in_database); } db.SaveChanges(); } private void CheckAndSyncNetworkFields(Networks network_from_api, Networks network_in_database) { if(network_in_database.name != network_from_api.name || network_in_database.organizationID != network_from_api.organizationID || network_in_database.type != network_from_api.type || network_in_database.tags != network_from_api.tags || network_in_database.time_zone != network_from_api.time_zone) { network_in_database.name = network_from_api.name; network_in_database.organizationID = network_from_api.organizationID; network_in_database.type = network_from_api.type; network_in_database.tags = network_from_api.tags; network_in_database.time_zone = network_from_api.time_zone; } }

¿Hay una manera más eficiente de hacer esto? ¿Podría de alguna manera usar las funciones IsModfied o Attach?


Creo que solo está buscando un Upsert (Insertar o Actualizar) en el marco de la Entidad.

Puede usar AddOrUpdate() para esto, vea aquí .

.Added o .Modified se pueden usar, como se ve en la primera respuesta aquí