2016-11-03 5 views
0

これは私が顧客と入れ子の子を挿入する方法です。顧客には住所と住所と呼ばれる子があり、連絡先の詳細と呼ばれる子があります。Entity Framework:dbにデータを追加または更新するときにネストされた子を含めるには

using (var db = new TestDBContext()) 
    { 
     var customer = new Customer 
     { 
      FirstName = "Test Customer1", 
      LastName = "Test Customer1", 
      Addresses = new List<Addresses> 
      { 
       new Addresses 
       { 
        Address1 = "test add1", 
        Address2 = "test add2", 
        IsDefault=true, 
        Contacts = new List<Contacts> 
        { 
         new Contacts { Phone = "1111111", Fax = "1-1111111",IsDefault=true, SerialNo=1 }, 
         new Contacts { Phone = "2222222", Fax = "1-2222222",IsDefault=false, SerialNo=2 } 
        } 
       }, 
       new Addresses 
       { 
        Address1 = "test add3", 
        Address2 = "test add3", 
        IsDefault=false, 
        Contacts = new List<Contacts> 
        { 
         new Contacts { Phone = "33333333", Fax = "1-33333333",IsDefault=false, SerialNo=1 }, 
         new Contacts { Phone = "33333333", Fax = "1-33333333",IsDefault=true, SerialNo=2 } 
        } 
       } 

      } 
     }; 

     db.Customer.Add(customer); 
     db.SaveChanges(); 

     int id = customer.CustomerID; 
    } 

ここで、顧客とその連絡先と連絡先の詳細を更新したいとします。

iブラウザの類似スレッドはここにありません。私は人々が子データを削除し、更新の代わりに新しいデータを挿入するのを見た。ここで一つのリンクhttps://stackoverflow.com/a/27177623/728750

は、彼らがこのよう

var existingParent = _dbContext.Parents 
     .Where(p => p.Id == model.Id) 
     .Include(p => p.Children) 
     .SingleOrDefault(); 

子が含まれるが、私の場合は、複数の子を持っているどのように私は、顧客の最初のアドレスを含めることができ、その後、私は含めるのが好き、アドレスや連絡先の詳細のように言っていますお問い合わせ先住所のお子様。

どうすればいいですか教えてください。

答えて

0

あなたはこの

using System.Data.Entity; // NB! 

var company = dbContext.Parents 
        .Include(co => co.Addresses.Select(ad=> ad.Contacts)) 
        .FirstOrDefault(p => p.Id == model.Id); 

簡単なサンプルのために収集、収集、および参照二つのレベル ダウンを含めるには

をまとめ

var company = context.Companies 
       .Include(co => co.Employees.Select(emp => emp.Employee_Car)) 
       .Include(co => co.Employees.Select(emp => emp.Employee_Country)) 
       .FirstOrDefault(co => co.companyID == companyID); 

.Include Msdn詳細を探しています: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference)))

+0

はいそれは働いた。私たちが多くの複数の入れ子にされたエンティティを持っているとしたら、どうすればいいのですか?入れ子のエンティティが5のサンプルコードを投稿することができます。 – Mou

+0

喜んで、それはあなたを助けました – Eldho

+0

私は会社のようにネストしたい>国>州>都市どのようにこれを達成する – Mou

関連する問題