2015-08-28 56 views
-1

我曾與已-已經生成該單個圖和代碼EF設計師,目標創建當我生成溶液我得到這個錯誤第一誤差:EF錯誤代碼3004

錯誤1錯誤3004:片段問題從線84映射:在intDBs遊戲intDB.tpintDB_id_tpint屬性未指定映射。 用密鑰(PK)的實體不會將一個返回時: [實體]就像[helpdeskModel.intDB]

this is a link to an image of my diagram

下面是代碼:

public partial class helpdeskEntities : DbContext 
    { 
     public helpdeskEntities() 
      : base("name=helpdeskEntities") 
     { 
     } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      throw new UnintentionalCodeFirstException(); 
     } 

     public DbSet<intDB> intDBs { get; set; } 
     public DbSet<tpintDB> tpintDBs { get; set; } 
    } 
} 




    public partial class intDB 
{ 
    public int ID { get; set; } 
    public Nullable<System.DateTime> debint { get; set; } 
    public Nullable<System.DateTime> finint { get; set; } 
    public Nullable<int> id_int { get; set; } 
    public decimal id_tpint { get; set; } 
    [ForeignKey("id_tpint")] 
    public virtual tpintDB tp_intDB { get; set; } 
} 
    } 





     public partial class tpintDB 
    { 
     public decimal id_tpint { get; set; } 
     public string libelle { get; set; } 
     public string desc_tpint { get; set; } 

     public virtual ICollection<intDB> intDBs { get; set; } 
    } 
    } 

我的新intDB型號:

public partial class intDB 
{ 
    public int ID { get; set; } 
    public Nullable<System.DateTime> debint { get; set; } 
    public Nullable<System.DateTime> finint { get; set; } 
    public Nullable<int> id_int { get; set; } 
    [ForeignKey("id_tpint")] 
    public virtual int tp_intDB { get; set; } 
} 

回答

1

我們不能斷定對於s URE是什麼問題,而不一段代碼(即實體類)。瞄準這個問題似乎很明顯對我說:在intdb實體,你需要這個屬性: public virtual tpintDB tpintDB { get; set; }並在tpintDB你需要public ICollection <intDB> intDBList { get; set; }。 另外,請您酸味啓用自動遷移或自己添加遷移。

UPDATE

我更新我的回答讓您可以更好的看到實體不宜怎麼可以聲明。

public partial class intDB 
{ 
    public int ID { get; set; } 
    public Nullable<System.DateTime> debint { get; set; } 
    public Nullable<System.DateTime> finint { get; set; } 
    public Nullable<int> id_int { get; set; } 
    public int id_tpint { get; set; } 
    [ForeignKey("id_tpint")] 
    public virtual tpintDB tp_intDB { get; set; } 
} 

更新2

此外,tpintDB需要這個樣子。

public partial class tpintDB 
{ 
    public int id_tpint { get; set; } 
    public string libelle { get; set; } 
    public string desc_tpint { get; set; } 

    public virtual ICollection<intDB> intDBs { get; set; } 
} 

想在ICollection的具有對tpintDB儀器記住魁intDB對象引用它。我的英語不是最好的,現在,我希望你的目標是理解爲:D還,我不能保證這是我的目的,最好的解決辦法是在一個項目工作30+實體,我認爲這是非常乾淨的。

+0

如何添加遷移? – biba

+0

打開包管理控制檯和寫'添加遷移[randomName]'。就是這麼簡單 –

+0

現在我有這樣的錯誤:1錯誤2039:概念屬性「id_tpint」過氣已被映射到與「INT」類型的存儲性能。如果屬性映射到存儲模型的概念有幾個特性,酸味使,存儲的所有屬性模型有相同的類型。 – biba

0

請檢查Id_tpint的數據類型兩者都是薩米。 你也必須定義主鍵和外鍵Id_tpint爲intDB和tpintDB。

+0

我認爲這是在類圖中定義的..不是嗎? – biba