2017-05-21 8 views
0

この問題の周りに10件の投稿を読みましたが、まだ何が失敗しているのか理解できません。複合PKモデルクラスでForeignKeyエラーが発生しました

ASPNET MVC5ウェブアプリ。コードファースト

モデル:

public partial class Category 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public int? ParentID { get; set; } 
    public bool IsDeleted { get; set; } 
    public virtual ICollection<Product> Products { get; set; } 
} 

public class ISO_Languages 
{ 
    public int ID { get; set; } 
    public string code { get; set; } 
    public bool IsEnabled { get; set; } 
    public string name_en { get; set; } 
    public string name_fr { get; set; } 
    public string name_it { get; set; } 
    public string name_de { get; set; } 
    public string name_es { get; set; } 
} 

public class CategoryTrans 
{ 
    [Key] 
    [Column(Order = 1)] 
    public int category_id { get; set; } 
    [Key] 
    [Column(Order = 2)] 
    public int language_id { get; set; } 
    public string name { get; set; } 
} 

CategoryTrans 2 FKに基づく複合PKを持っている:私はちょうど正しくCategoryTransモデルでは、このアーキテクチャを参照しようとしていますカテゴリIDとISO_Languages ID

、それは何かであります以下のような:

public class CategoryTrans 
{ 
    [Key, Column(Order = 1)] 
    public int category_id { get; set; } 
    [Key, Column(Order = 2)] 
    public int language_id { get; set; } 
    [ForeignKey("ID")] 
    public virtual Category ID{ get; set; } 
    [ForeignKey("ID")] 
    public virtual ISO_Languages ID2{ get; set; } 
    public string name { get; set; } 

ForeignKeyAttributeタイプのプロパティ 'ID' on「にxyz.Mod els.CategoryTrans 'は無効です。依存型 'xyz.Models.CategoryTrans'で外部キー名 'ID'が見つかりませんでした。 Nameの値は、外部キープロパティ名

public class CategoryTrans 
    { 
     [Key, Column(Order = 1)] 
     public int category_id { get; set; } 
     [Key, Column(Order = 2)] 
     public int language_id { get; set; } 
     [ForeignKey("Category")] 
     public virtual Category catid{ get; set; } 
     [ForeignKey("ISO_Languages")] 
     public virtual ISO_Languages languguageid{ get; set; } 
     public string name { get; set; } 

ForeignKeyAttributeは、プロパティに型「xyz.Models.CategoryTrans」オン「CATID」は有効ではありません

のカンマ区切りのリストでなければなりません。依存キー型 'Category'が依存型 'xyz.Models.CategoryTrans'で見つかりませんでした。 Name値は、外部キーのプロパティ名をコンマで区切ったリストでなければなりません。

私は何か不可能なことをしようとしていますか?

答えて

1

試してみてください。

public partial class Category 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public int? ParentID { get; set; } 
    public bool IsDeleted { get; set; } 
    public virtual ICollection<Product> Products { get; set; } 
    public virtual ICollection<CategoryTrans> CategoryTrans { get; set; } 
} 

public class ISO_Languages 
{ 
    public int ID { get; set; } 
    public string code { get; set; } 
    public bool IsEnabled { get; set; } 
    public string name_en { get; set; } 
    public string name_fr { get; set; } 
    public string name_it { get; set; } 
    public string name_de { get; set; } 
    public string name_es { get; set; } 
    public virtual ICollection<CategoryTrans> CategoryTrans { get; set; } 
} 
public class CategoryTrans 
{ 
    [Key, Column(Order = 1)] 
    public int category_id { get; set; } 
    [Key, Column(Order = 2)] 
    public int language_id { get; set; } 
    [ForeignKey("category_id")] 
    public virtual Category ID{ get; set; } 
    [ForeignKey("language_id")] 
    public virtual ISO_Languages ID2{ get; set; } 
    public string name { get; set; } 
} 
関連する問題