2012-06-11 93 views
1

我使用EF4查找一個項目數據庫,以確定是否需要插入或編輯,像這樣同一連接編輯:添加和使用EF4

List<Campground> CampgroundEntities = new List<Campground>(); 

using (MiscEntities pd = new MiscEntities()) 
      { 
       Campground kc = pd.Campground.FirstOrDefault(i => i.Name == name); 

       if (kc != null) 
       { 
        kc.StreetAddress = streetAddress; 
        kc.City = city; 
        kc.State = state; 
        kc.Zip = zip; 
        kc.URL = campgroundUrl; 
        kc.UpdatedDT = DateTime.Now; 

        CampgroundEntities.Add(kc); 
       } 
       else 
       { 
        kc = new Campground(); 
        kc.Name = name; 
        kc.StreetAddress = streetAddress; 
        kc.City = city; 
        kc.State = state; 
        kc.Zip = zip; 
        kc.URL = campgroundUrl; 
        kc.AddedDateTime = DateTime.Now; 

        CampgroundEntities.Add(kc); 
       } 
      } 

我加入我的實體列表,然後在此之後,我要提交這些更改到數據庫:

 using (MiscEntities pd = new MiscEntities()) 
     { 
      foreach (var item in CampgroundEntities) 
      { 
       pd.Campground.AddObject(item); 
      } 
      pd.SaveChanges(); 
     } 

現在顯然是不行的,但如果可能的話,我想使用該連接來處理這兩個插入並更新。可以做到嗎?

回答

1
using (MiscEntities pd = new MiscEntities()) 
{ 
    Campground kc = pd.Campground.FirstOrDefault(i => i.Name == name); 

    if (kc == null) 
    { 
     kc = new Campground(); 
     pd.Campground.Add(kc);   
    } 

    kc.StreetAddress = streetAddress; 
    kc.City = city; 
    kc.State = state; 
    kc.Zip = zip; 
    kc.URL = campgroundUrl; 
    kc.UpdatedDT = DateTime.Now; 

    CampgroundEntities.Add(kc); 
} 
+0

我得到一個錯誤,說pd.Campground不包含.Add方法。 – broke

+0

pd.Campground必須是一個列表,並且應該有add方法。 –