【发布时间】:2014-09-30 02:18:10
【问题描述】:
我有一个假期和一个国家列表。我希望使用多对多关系将这些绑定在一起。我有一个代码优先的假期模型和国家模型。单个表和连接表都已成功生成。
但是,当我尝试将国家/地区添加到假期(反之亦然)时,连接表仍然为空。我能够成功添加个人假期以及国家/地区。
模型
public class Vacations
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int VacationId { get; set; }
public string ProductId { get; set; }
public string Name { get; set; }
public string Price { get; set; }
public virtual ICollection<Countries> Countries { get; set; }
public Vacations()
{
Countries = new List<Countries>();
}
}
public class Countries
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CountryID { get; set; }
public string CountryName { get; set; }
public virtual ICollection<Vacations> Vacations { get; set; }
public Countries()
{
Vacations = new List<Vacations>();
}
}
public class MyContext : DbContext
{
public MyContext()
: base("myconn")
{
}
public DbSet<Vacations> Vacations { get; set; }
public DbSet<Countries> Countries { get; set; }
}
插入假期
Vacations vacation = database.Vacations.Add(new Vacations
{
Name = vacationData.Name,
Description = vacationData.Description,
});
database.SaveChanges();
// to make sure the key is in the database to refrence
foreach (string country in AllMyCountries)
{
Countries countries = database.Countries.Add(new Countries
{
CountryName = country
});
countries.Vacations.Add(vacation);
vacation.Countries.Add(countries);
}
database.SaveChanges();
我也尝试过只添加到一个实体,并在两者之间添加更多对 SaveChanges() 的调用。
【问题讨论】:
标签: c# asp.net entity-framework ef-code-first many-to-many