1

Ich habe ein ASP.NET MVC 4 WEBAPI-Projekt mit Entity Framework 4.3 Es hat 3 Tabellen in meinem MS SQL DB:ASP.NET MVC 4 WEBAPI Entity Framework 4.3: Was ist der beste Weg, um "viele zu viele" aus Sammlung zu speichern

Meal MealCategory Kategorie

die zweite Tabelle ist die Verbindung von 1 und 3 (viele zu viele-Verbindung). Hier ist meine Mahlzeit Modell:

[Table("Meal")] 
public class Meal 
{ 
[Key] 
public long MealID { get; set; } 
public string MealName { get; set; } 
... 
public virtual ICollection<Category> Categories { get; set; } 
} 

Und hier ist meine Kategorie Modell:

[Table("Category")] 
public class Category 
{ 
[Key] 
public long CategoryID { get; set; } 
... 
public virtual ICollection<Meal> Meals { get; set; } 
} 

I-Code zuerst mit bin. Und hat eine 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"); 
     }); 
    } 
} 

Auch habe ich eine Aktion:

// POST /api/<controller>/<action> 
public HttpResponseMessage PostMeals(IEnumerable<Meal> meals) 
{ 
    ... 
} 

So ist die Frage: Was ist der beste Weg, um all meine Mahlzeiten speichern mit allen Verbindungen zu Kategorie und MealCategory bis DB?

Antwort

0

Haben Sie so etwas wie dies versucht:

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

?

Verwandte Themen