Generic Repository パターンを使用して Entity Framework Code First をセットアップしました。
ここに私のモデルがあります:
public interface IEntity {
int Key { get; set; }
}
public class Product : IEntity {
public int Key {
get {
return ID;
}
set {
ID = value;
}
}
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public IEnumerable<Category> Category { get; set; }
}
public class Category : IEntity {
public int Key {
get {
return ID;
}
set {
ID = value;
}
}
public int ID { get; set; }
public string Name { get; set; }
public int ParentID { get; set; }
}
これが私の汎用リポジトリにフックするコンテキストです。
public class EntitiesContext : DbContext, IDbContext {
public DbSet<Product> Products { get; set; }
public new IDbSet<T> Set<T>() where T : class {
return base.Set<T>();
}
}
ご覧のとおり、Product にはカテゴリの IEnumerable があります。これに一致するデータベースを作成するとしたら、次のようになります。
商品 - ID - 名前 - など
カテゴリ - ID - 名前 - など
ProductCategories - ProductID - CategoryID
データベースが作成されたときに結合テーブルがないのはなぜですか?