1

我有一個ASP.NET MVC 4 WEBAPI項目與實體框架4.3 它有3個表在我的MS SQL DB:ASP.NET MVC 4 WEBAPI實體框架4.3:什麼是從集合中保存「多對多」的最佳方式

膳食 MealCategory 類別

第二個表是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) 
{ 
    ... 
} 

所以現在的問題是:什麼是救我所有的餐類別和MealCategory所有連接到DB的最好方法是什麼?

回答

0

你有沒有嘗試過這樣的事情:

using(var ctx = new DgDbContext()) 
{ 
    foreach(var meal in meals) 
    { 
     ctx.Meal.Add(meal); 
    } 
    ctx.SaveChanges(); 
} 

相關問題