public void Update(Seller seller) { using (var context = DataContext.CreateNew()) { context.Database.Log = Console.WriteLine; foreach (var item in seller.Properties) { if(context.SellerProperties.FirstOrDefault(x=>x.SellerId == item.SellerId) !=null) { context.SellerProperties.Attach(item); context.Entry(item).State = EntityState.Modified; } else { context.SellerProperties.Add(item); context.Entry(item).State = EntityState.Added; } } context.Sellers.Attach(seller); context.Entry(seller).State = EntityState.Modified; context.SaveChangesAsync(); } }
public void Remove(Seller seller) { using (var context = DataContext.CreateNew()) { context.Sellers.Remove(seller); context.SaveChangesAsync(); } }
public int Add(Seller seller) { using (var context = DataContext.CreateNew()) { context.Database.Log = Console.WriteLine; context.Sellers.Add(seller); context.SaveChanges(); return seller.SellerId; } }
public void InsertOrUpdate(Seller seller) { using (var context = DataContext.CreateNew()) { if (seller.SellerId == default(int)) { context.Sellers.Add(seller); } else { UpdateSeller(seller, context); } context.SaveChanges(); } }
static void Main(string[] args) { var s = new SellerRepository(); var seller = new Seller { Name = "Flipkart", Url = "http://flipkart.com" }; seller.Properties = new List<SellerProperty> { new SellerProperty{Name = "Flipkart Shopping Type new ", Value = "E Commerse site"}, new SellerProperty{Name = "Flipkart Address new asdfasd", Value = "Our favorite address"} }; s.InsertOrUpdate(seller); //var a = s.All; //s.Delete(a.FirstOrDefault().SellerId); }
private void PrepareObjectGraph(Seller seller, DataContext context) { context.Sellers.Add(seller); }
private void MarkSellerAsModified(Seller seller, DataContext context) { context.Entry(seller).State = EntityState.Modified; }
private void MarkAllPropertiesAsNew(Seller seller, DataContext context) { seller.Properties.ForEach(x => context.Entry(x).State = EntityState.Added); }
private void DeleteExistingProperties(Seller seller, DataContext context) { context.Database.ExecuteSqlCommand("DELETE from SellerProperties where SellerId = " + seller.SellerId); }
private void UpdateSeller(Seller seller, DataContext context) { PrepareObjectGraph(seller, context); MarkSellerAsModified(seller, context); DeleteExistingProperties(seller, context); MarkAllPropertiesAsNew(seller, context); }