2017-04-20 3 views
0

私はC#を初めて使っています。私はWebアプリケーションプロジェクトに取り組んでいます。 DbInitializerクラスでリストを初期化する方法を知りたい。たとえば、これはモデルですモデルクラスからDbInitliazerにリストを渡す

using System; 
using System.Collections.Generic; 

namespace Manager.Model 
{ 

    public class Vendor 
    { 
     public int VendorID { get; set; } 
     public string CardName { get; set; } 
     public string WebsiteLink { get; set; } 
     public DateTime PartnerSince { get; set; } 
     public List<Rep> Reps { get; set; } 
     public string SupportNo { get; set; } 
     public string SupportEmail { get; set; } 
     public string Rebate { get; set; } 
     public string Spiff { get; set; } 
     public string Quote { get; set; } 
    } 
    public class Rep 
    { 
     public string RepName { get; set; } 
     public string RepPosition { get; set; } 
     public string RepNo { get; set; } 
     public string RepEmail { get; set; } 
    } 
} 

このリストをInitializeメソッドでどのように渡しますか?

public static void Initialize(ManagementContext context) 
    { 
     context.Database.EnsureCreated(); 

     // Look for any students. 
     if (context.Vendors.Any()) 
     { 
      return; // DB has been seeded 
     } 


     var vendors = new Vendor[] 
     { 
     new Vendor{CardName="Vendor1", WebsiteLink="www.vendor1.com", PartnerSince=DateTime.Parse("10-10-2012"), SupportNo="521-586-8956", SupportEmail="[email protected]"},   
     }; 

     foreach (Vendor v in vendors) 
     { 
      context.Vendors.Add(v); 
     } 
     context.SaveChanges(); 
+0

でそれを割り当てますリストリスト=新しいリスト 'を追加し、' list.Add(新しいベンダー(){prop1 = '' ...}); 'のような項目を追加する –

+0

公開リスト連絡先担当者のすべての情報)をVendorオブジェクトに追加します。私はDbInitializerコード全体でポストを更新しました。 –

+0

つまり、リストの項目を次の行に渡すにはどうすればいいですか:new Vendor {CardName = ...... –

答えて

1

あなたはすべてをインラインやってみたい場合:

Vendor[] vendors = new Vendor[] 
{ 
    new Vendor() // first vendor 
    { 
     CardName="Vendor1", 
     WebsiteLink="www.vendor1.com", 
     PartnerSince=DateTime.Parse("10-10-2012"), 
     SupportNo="521-586-8956", 
     SupportEmail="[email protected]", 
     Reps = new List<Rep>() 
     { 
      new Rep() // first rep 
      { 
       RepName = "name", 
       RepPosition = "pos", 
       RepNo = "no", 
       RepEmail = "email" 
      } 
      // , new Rep(){...} // second rep, etc... 
     } 
    } 
    // , new Vendor(){....} // second vendor, etc...  
}; 

それとも単に最初の担当者を準備します。その後、

List<Rep> Reps1 = new List<Rep>(); // Reps 1 for Vendor 1 
Reps1.Add(new Rep() 
{ 
    RepName = "name", 
    RepPosition = "pos", 
    RepNo = "no", 
    RepEmail = "email" 
}); 
// you may add more rep 

ベンダーでそれを割り当てるを

Vendor[] vendors = new Vendor[] 
{ 
    new Vendor() // first vendor 
    { 
     CardName="Vendor1", 
     WebsiteLink="www.vendor1.com", 
     PartnerSince=DateTime.Parse("10-10-2012"), 
     SupportNo="521-586-8956", 
     SupportEmail="[email protected]", 
     Reps = Reps1 
    } 
    // , new Vendor(){....} // second vendor, etc...  
}; 
質問については

あなたは[]の文字列にRepNamesを変更した場合、

string[] RepNames1 = new string[] 
{ 
    "name1", 
    "name2" // , etc.... 
} 

、私はDBIntializerの一部を取得していないが、あなたは、リストを渡したい場合は、ベンダー

Vendor[] vendors = new Vendor[] 
{ 
    new Vendor() // first vendor 
    { 
     CardName="Vendor1", 
     WebsiteLink="www.vendor1.com", 
     PartnerSince=DateTime.Parse("10-10-2012"), 
     SupportNo="521-586-8956", 
     SupportEmail="[email protected]", 
     RepNames = RepNames1 
    } 
    // , new Vendor(){....} // second vendor, etc...  
}; 
+0

代わりに配列に変更したい場合は(モデルでpublic string [] RepNamesを使用します)どのようにVendorオブジェクトに渡しますか? –

+0

最後の質問:リストアイテムの場合、個別に表示するにはどうすればいいですか?たとえば、Rep1のRepNameを表示したいとします。 –

+0

ありがとう! –

関連する問題