2

からICollectionを を取得し、 Entity Frameworkのは、int型のコレクションを取得しようとEntity Frameworkの4.1を使用して、マッパー

基本的に私は、エンティティ名、仕様が列IDを持つテーブル

public class Spec { 
    public int Id{get;set;} 
    public string Name {get;set;} 
    public ICollection<int> TypeIds {get;set;} 
} 

スペック

と呼ばれていなどと、私はこの

のようなものを抱き合わせてきた私は、カラムspecId型IDとテーブルSpecTypesに型IDをマップしようとしていると私はそれ

のマッピングを把握することはできません

modelBuilder.Entity<Spec>().HasMany(r => r.TypesIds) 
     .WithMany() 
     .Map(m => m.ToTable("SpecTypes") 
      .MapLeftKey("SpecId") 
      .MapRightKey("TypeId")); 
+0

現在、EFはプリミティブ型と複合型のコレクションをサポートしていません。残念ながら、エンティティのコレクションのみがサポートされています。 – hival

答えて

1

プリミティブ値のコレクションに対してナビゲーションプロパティを設定することはできません。 Idプロパティを含むエンティティを作成し、これらのコレクションを持つ必要があると思います。あなたが記述するものに基づいて

public class Spec { 
    public int Id{get;set;} 
    public string Name {get;set;} 
    public ICollection<TypeEntity> TypeIds {get;set;} 
} 

public class TypeEntity { 
    public int Id {get;set;} 
} 
1

は、おそらくこのような1対多の関係をしたい:だからあなたは、このような多かれ少なかれ何かを持っているでしょう。通常は、モデル作成ツールを使用して、クラス定義で行うことができない複雑なマッピングを解決するだけです。

public class Spec { 
    public int Id{get;set;} 
    public string Name {get;set;} 
    public SpecType SpecType {get;set;} 
} 


public class SpecType { 
    public int Id{get;set;} 
    public ICollection<Spec> Specs {get;set;} 
} 
関連する問題