我有一个带有 Entity Framework 4.3 的 ASP.NET MVC 4 WEBAPI 项目它在我的 MS SQL DB 中有 3 个表:
Meal 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)
{
...
}
所以问题是:将我所有的饭菜保存到 DB 并与 Category 和 MealCategory 的所有连接的最佳方法是什么?