2014-01-28 110 views
0

我知道這個話題已經處理了很多,但我找不到任何類似於我的問題。INSERT語句與FOREIGN KEY約束衝突。 (MeasureUnit類)

我有3類:

public class MeasureUnit 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

public class DataSource 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

public class ExperienceMetric 
{ 
    public int Id { get; set; } 
    [Required, MaxLength(50)] 
    public string Name { get; set; } 
    public string Description { get; set; } 
    ... 
    public int DataSourceId { get; set; } 
    public int MeasureUnitId { get; set; } 
    public int ExperiencePillarId { get; set; } 
    public virtual DataSource DataSource { get; set; } 
    public virtual MeasureUnit MeasureUnit { get; set; } 
    public virtual ExperiencePillar ExperiencePillar { get; set; } 
} 

正如你所看到的,數據源和MeasureUnit是相同的,基本就能搞定。

我的問題如下。當我嘗試使用update-database在控制檯中播種我的數據庫時,我得到了MeasureUnit的外鍵錯誤。如果我從ExperienceMetric類(導航和Id)中刪除對MeasureUnit的引用,則一切運行良好。

我不理解種子爲什麼會爲一個類工作,但不是爲了第二個相同的類?

+0

請顯示您的種子代碼 – Colin

回答

0

我的問題實際上只是我種我的數據庫的方式。我正在創建一個ExperienceMetric,然後嘗試在沒有首先保存更改的情況下爲這個實體創建子項。結果,該數據庫無法創建一個ID來讓體驗指標分配給其子女,從而導致衝突。

相關問題