2010-05-31 106 views
0

我不斷收到相同的錯誤:'VlaamseOverheidMeterEntities.ObjectMeter'中的實體參與'FK_ObjectMeter_Meter'關係。找到0個相關的「米」。預計1米。實體框架實體密鑰/外鍵問題

我有以下表結構:

表1 < - * ObjectMeter * - > 1 VO_Object

它始終是相同的情況:第一計量器被添加到數據庫,第二表可上面的錯誤。

我已經在我的經理下面的代碼:

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; 
    } 

,這在我的DAO類可鏈接到數據庫:

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

能有人請解釋這個錯誤?

羅納德

+0

儀表的主鍵是什麼?什麼字段,什麼類型,是否自動增加或者不增加,如果不是,你如何初始化它? – 2010-05-31 12:47:56

+0

您是否嘗試過使用AddTo [某個實體集]首先將實體添加到上下文,然後分配導航屬性? – 2010-05-31 12:50:50

+0

@Fyodor:我使用自動增量和儀表的ID是米ID @ Oleg:我要去嘗試。 – Ronny176 2010-05-31 12:58:32

回答

0

如果我理解你的代碼:VO_Object是父ObjectMeter這是父表。 VO_Object已經存在於數據庫中。您應該在創建Meter之前創建(保存)ObjectMeter。