2017-05-10 9 views
0

番号idを書き込まないように、外部キーを持つレコードを追加します。外部キーを持つメソッドシードのレコードを追加します。Entity Framework

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 

、エマ

答えて

1

Countryがまだデータベースに挿入されていないとして、あなたはこの時点でIdで追加することはできません。代わりにCountryプロパティをFabricatorに設定して、新しいCountryを挿入すると、Fabricatorがデータベースに挿入されたときにCountryIdFabricatorに設定されます。名前で(つまり、まだ追加されていない)

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 

また、あなたはまた、地元の国を得ることができますし、FabricatorCountryプロパティにそれを割り当てる:

以下このコードはあなたにいくつかのアイデアを与える必要があります。

private void AddFabricator(ClockShopEntities context) 
{ 
    context.Fabricators.Add(new Fabricator { fName = "", Country = context.Countries.First(c => c.countryName == "country1") }); 
} // AddFabricator 
+0

暗黙のうちに、 'string'型を 'bool'型に変換することはできません。ブロック内のいくつかの戻り型が、代理返り値型に暗黙的に変換できないため、ラムダ式を代理型に変換できません。 –

+0

更新されたコードをチェックして、私は条件の等号を見逃していました。 – sachin

+0

ええ!どうもありがとう –

関連する問題