(使用Entity Framework 6.2)
我有以下两个模型/实体:
那样可以吗?还是我需要具体添加每个城市?例如:
我有以下两个模型/实体:
public class City
{
public int CityId { get; set; }
public string Name { get; set; }
}
public class Country
{
public Country()
{
Cities new HashSet<City>();
}
public int CountryId { get; set; }
public string Name { get; set; }
public virtual ICollection<City> Cities { get; set; }
}
以下是DbContext
public DbSet<Country> Countries { get; set; }
我的问题是:如果Country对象的子项(即城市)发生变化,我该如何更新?
我可以这样做吗:
List<City> cities = new List<City>();
// Add a couple of cities to the list...
Country country = dbContext.Countries.FirstOrDefault(c => c.CountryId == 123);
if (country != null)
{
country.Cities.Clear();
country.Cities = cities;
dbContext.SaveChanges();
}
那样可以吗?还是我需要具体添加每个城市?例如:
List<City> cities = new List<City>();
// Add a couple of cities to the list...
Country country = dbContext.Countries.FirstOrDefault(c => c.CountryId == 123);
if (country != null)
{
country.Cities.Clear();
foreach (City city in cities)
country.Cities.Add(city);
dbContext.SaveChanges();
}
dbContext.Countries.Cities.Clear();
绝对行不通,因为Countries
是一个DbSet<Country>
,它没有Cities
属性 ;) - Balázscountry.Cities = cities;
或者foreach (City city in cities) country.Cities.Add(city);
有起作用吗?我认为你正在寻找AddRange()
,如countries.Cities.AddRange(cities)
,但我不确定这是否是你所询问的。 - kimbaudi