2011-02-10 9 views
5

Ho 3 tabelle. Metadati, regole e una relazione NxN MetadataRules.Entity Framework Insert Molti a molti crea dati duplicati

Inserisco un metadata e il mio oggetto contiene un elenco di regole recuperate dal DB.

myMetadata.Rules = myListOfrules; 

Quando si esegue un'operazione di inserimento, tutte le regole in myListOfRules sono duplicati nella tabella delle regole, invece di creare un rapporto. Sto inserendola con:

public static void InserirTipoMetadata(TA_TIPO_METADATA tipoMetadata) { 
    using (EnterpriseContext context = new EnterpriseContext()) { 
     context.TipoMetadata.AddObject(tipoMetadata); 
     context.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave); 
    } 
} 

Cosa devo fare per non duplicare le regole?

Grazie!

risposta

0

ho trovato una soluzione, ma non credo che sia quella giusta ...

public static void InserirTipoMetadata(TA_TIPO_METADATA tipoMetadata) { 
      using (EnterpriseContext context = new EnterpriseContext()) { 
       List<TA_REGRA_VALID> regras = new List<TA_REGRA_VALID>(); 
       foreach (var v in tipoMetadata.TA_REGRA_VALID) { 
        regras.Add(context.Regra.Single(p => p.CO_SEQ_REGRA == v.CO_SEQ_REGRA)); 
       } 
       tipoMetadata.TA_REGRA_VALID = regras; 
       context.TipoMetadata.AddObject(tipoMetadata); 
       context.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave); 
      } 
     } 

che sto selezionando le regole ancora una volta dal DB prima di tentare di aggiungere. È il modo corretto?

Problemi correlati