Entity Framework 4.3 を使用した ASP.NET MVC 4 WEBAPI プロジェクトがあります。MS SQL DB に 3 つのテーブルがあります。
食事 食事カテゴリー カテゴリー
2 番目の表は、1 と 3 の接続 (多対多接続) です。これが私の食事モデルです:
[Table("Meal")]
public class Meal
{
[Key]
public long MealID { get; set; }
public string MealName { get; set; }
...
public virtual ICollection<Category> Categories { get; set; }
}
そして、ここに私のカテゴリモデルがあります:
[Table("Category")]
public class Category
{
[Key]
public long CategoryID { get; set; }
...
public virtual ICollection<Meal> Meals { get; set; }
}
私は最初にコードを使用しています。そしてDbContextを持っています:
public class DgDbContext : DbContext
{
public DbSet<Category> Category { get; set; }
public DbSet<Meal> Meal { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Meal>().
HasMany(c => c.Categories).
WithMany(p => p.Meals).
Map(
m =>
{
m.MapLeftKey("MealID");
m.MapRightKey("CategoryID");
m.ToTable("MealCategory");
});
}
}
また、私にはアクションがあります:
// POST /api/<controller>/<action>
public HttpResponseMessage PostMeals(IEnumerable<Meal> meals)
{
...
}
問題は、すべての食事を DB に保存し、Category と MealCategory にすべて接続する最良の方法は何かということです。