2010-05-31 4 views
0

Je continue d'obtenir la même erreur: Les entités de 'VlaamseOverheidMeterEntities.ObjectMeter' participent à la relation 'FK_ObjectMeter_Meter'. 0 'Meter' ont été trouvés. 1 'Compteur' est attendu.Entity Framework EntityKey/Problème de clé étrangère

J'ai la structure de tableau suivant:

compteur 1 < - * ObjectMeter * -> 1 VO_Object

Il est toujours le même scénario: Le premier compteur est ajouté à la base de données, le deuxième compteur donne l'erreur ci-dessus.

j'ai le code suivant dans mon manager:

public List<string> addTemporary(string username, string meterNaam, string readingType, string parentID) { 
     Meter meter = new Meter(); 
     VO_Object voObject = objectManager.getObjectByID(parentID); 
     ObjectMeter objMeter = new ObjectMeter(); 

     meter.readingType = (int)Enum.Parse(typeof(ReadingType), readingType); 
     meter.isActive = true; 
     meter.name = meterNaam; 
     meter.startDate = DateTime.Now; 
     meter.endDate = DateTime.Now.AddYears(6000); 
     meter.uniqueIdentifier = "N/A"; 
     meter.meterType = (int)Enum.Parse(typeof(MeterType), "NA"); 
     meter.meterCategory = (int)Enum.Parse(typeof(MeterCategory), "NA"); 
     meter.energyType = (int)Enum.Parse(typeof(EnergyType), "NA"); 
     meter.utilityType = (int)Enum.Parse(typeof(UtilityType), "NA"); 
     meter.unitOfMeasure = (int)Enum.Parse(typeof(UnitOfMeasure), "NA"); 

     objMeter.valid_from = meter.startDate; 
     objMeter.valid_until = meter.endDate; 

     objMeter.Meter = meter; 
     objMeter.VO_Object = voObject; 

     createMeter(meter); 

     List<String> str = new List<string>(); 
     str.Add("" + meter.meterID); 
     str.Add(meter.name); 
     return str; 
    } 

et dans ma classe Dao qui relie à la base de données:

internal void CreateMeter(Meter _meter) { 
     _entities.AddToMeter(_meter); 
     _entities.SaveChanges(); 
    } 

Quelqu'un peut-il expliquer cette erreur s'il vous plaît?

Ronald

+0

Quelle est la clé primaire de Meter? Quel champ, quel type, est-il autoincrément ou non, et si non, comment l'initialiser? –

+0

Avez-vous essayé d'ajouter une entité à un contexte en utilisant AddTo [Un ensemble d'entités] en premier, puis en affectant des propriétés de navigation? –

+0

@Fyodor: J'utilise Autoincrement et l'ID de Meter est meterID @Oleg: Je vais essayer ça. – Ronny176

Répondre

0

Si je comprends bien votre code: VO_Object est parent à ObjectMeter qui est parent au compteur. VO_Object existe déjà dans la base de données. Vous devez créer (enregistrer) ObjectMeter avant de créer Meter.

Questions connexes