示例#1
0
        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();
            }
        }
示例#2
0
 public void Remove(Seller seller)
 {
     using (var context = DataContext.CreateNew())
     {
         context.Sellers.Remove(seller);
         context.SaveChangesAsync();
     }
 }
示例#3
0
 public int Add(Seller seller)
 {
     using (var context = DataContext.CreateNew())
     {
         context.Database.Log = Console.WriteLine;
         context.Sellers.Add(seller);
         context.SaveChanges();
         return seller.SellerId;
     }
 }
示例#4
0
        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();
            }
        }
示例#5
0
        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);
        }
示例#6
0
 private void PrepareObjectGraph(Seller seller, DataContext context)
 {
     context.Sellers.Add(seller);
 }
示例#7
0
 private void MarkSellerAsModified(Seller seller, DataContext context)
 {
     context.Entry(seller).State = EntityState.Modified;
 }
示例#8
0
 private void MarkAllPropertiesAsNew(Seller seller, DataContext context)
 {
     seller.Properties.ForEach(x => context.Entry(x).State = EntityState.Added);
 }
示例#9
0
 private void DeleteExistingProperties(Seller seller, DataContext context)
 {
     context.Database.ExecuteSqlCommand("DELETE from SellerProperties where SellerId = " + seller.SellerId);
 }
示例#10
0
 private void UpdateSeller(Seller seller, DataContext context)
 {
     PrepareObjectGraph(seller, context);
     MarkSellerAsModified(seller, context);
     DeleteExistingProperties(seller, context);
     MarkAllPropertiesAsNew(seller, context);
 }