使用外键在方法 Seed 中添加记录 Entity Framework
Add record in method Seed with foreign key Entity Framework
我想用外键添加记录,以免写数字id。
protected override void Seed(ClockShopEntities context)
{ ... } // Seed
private void AddType(ClockShopEntities context)
{
context.Typs.Add(new Typ { typName = "name1" });
context.Typs.Add(new Typ { typName = "name2" });
} // AddType
private void AddCountry(ClockShopEntities context)
{
context.Countries.Add(new Country { countryName = "country1" });
context.Countries.Add(new Country { countryName = "country2" });
context.Countries.Add(new Country { countryName = "country3" });
context.Countries.Add(new Country { countryName = "country4" });
} // AddCountry
如何通过指定名称添加值?
// !!!!! with write id
private void AddFabricator(ClockShopEntities context)
{
context.Fabricators.Add(new Fabricator { fName = "", idCountry = 1 });
} // AddFabricator
// How can I write without Id
private void AddFabricator(ClockShopEntities context)
{
context.Fabricators.Add(
new Fabricator { fName = "", idCountry = ?? where Country = "country1" });
} // AddFabricator
艾玛,希望得到帮助
此时您无法通过 Id
添加,因为 Country
尚未插入数据库。 您需要做的是将 Fabricator
的 Country
属性 设置为插入的新 Country
,entity framework 本身会负责在 [=15] 上设置 CountryId
=] 当 Fabricator
插入数据库时。
下面这段代码应该能给你一些想法:
private void AddCountry(ClockShopEntities context)
{
var country1 = new Country { countryName = "country1" };
AddFabricator(context, country1);
context.Countries.Add(country1);
context.Countries.Add(new Country { countryName = "country2" });
context.Countries.Add(new Country { countryName = "country3" });
context.Countries.Add(new Country { countryName = "country4" });
} // AddCountry
private void AddFabricator(ClockShopEntities context, Country country)
{
context.Fabricators.Add(new Fabricator { fName = "", Country = country });
} // AddFabricator
或者,您也可以通过名称获取本地国家(尚未添加)并将其分配给 Country
属性 of Fabricator
。
private void AddFabricator(ClockShopEntities context)
{
context.Fabricators.Add(new Fabricator { fName = "", Country = context.Countries.First(c => c.countryName == "country1") });
} // AddFabricator
我想用外键添加记录,以免写数字id。
protected override void Seed(ClockShopEntities context)
{ ... } // Seed
private void AddType(ClockShopEntities context)
{
context.Typs.Add(new Typ { typName = "name1" });
context.Typs.Add(new Typ { typName = "name2" });
} // AddType
private void AddCountry(ClockShopEntities context)
{
context.Countries.Add(new Country { countryName = "country1" });
context.Countries.Add(new Country { countryName = "country2" });
context.Countries.Add(new Country { countryName = "country3" });
context.Countries.Add(new Country { countryName = "country4" });
} // AddCountry
如何通过指定名称添加值?
// !!!!! with write id
private void AddFabricator(ClockShopEntities context)
{
context.Fabricators.Add(new Fabricator { fName = "", idCountry = 1 });
} // AddFabricator
// How can I write without Id
private void AddFabricator(ClockShopEntities context)
{
context.Fabricators.Add(
new Fabricator { fName = "", idCountry = ?? where Country = "country1" });
} // AddFabricator
艾玛,希望得到帮助
此时您无法通过 Id
添加,因为 Country
尚未插入数据库。 您需要做的是将 Fabricator
的 Country
属性 设置为插入的新 Country
,entity framework 本身会负责在 [=15] 上设置 CountryId
=] 当 Fabricator
插入数据库时。
下面这段代码应该能给你一些想法:
private void AddCountry(ClockShopEntities context)
{
var country1 = new Country { countryName = "country1" };
AddFabricator(context, country1);
context.Countries.Add(country1);
context.Countries.Add(new Country { countryName = "country2" });
context.Countries.Add(new Country { countryName = "country3" });
context.Countries.Add(new Country { countryName = "country4" });
} // AddCountry
private void AddFabricator(ClockShopEntities context, Country country)
{
context.Fabricators.Add(new Fabricator { fName = "", Country = country });
} // AddFabricator
或者,您也可以通过名称获取本地国家(尚未添加)并将其分配给 Country
属性 of Fabricator
。
private void AddFabricator(ClockShopEntities context)
{
context.Fabricators.Add(new Fabricator { fName = "", Country = context.Countries.First(c => c.countryName == "country1") });
} // AddFabricator