重复记录 [英] Duplication Of Records

查看:119
本文介绍了重复记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的朋友们,

当我尝试使用entityframework在数据库中保存数据时我遇到了一些问题



在我的数据库中有例如两个表: - 订单订单详细信息

OrderId是OrderDetails中的Forain键。



现在我的问题如下......

i am调用函数GenerateOrder()





Dear Friends,
I have some problem when i am trying to save data in database using entityframework

In my database there are two tables for example :- tables Order and OrderDetails,
OrderId is Forain Key in OrderDetails..

now my Problem Is As Follows..
i am calling function GenerateOrder()


public void GenerateOrder()
       {
using (TransactionScope transactionscope = new TransactionScope())
            {
                bool success = false;
                try
                {
                    newOrder = new Order(CustomerNAme, ShippingAddress, BillingAddress, OrderDate, DiscountCode);

                    long oid = newOrder.PersistOrder();

                    newOrder.AddItem(oid ,1, 12, (decimal)120, 12);
                    newOrder.AddItem(oid, 1, 12, (decimal)130, 12);
                    newOrder.AddItem(oid, 1, 12, (decimal)140, 12);
                    newOrder.AddItem(oid, 1, 12, (decimal)150, 12);
                   
 newOrder.InsertOrderDetails();
                    //foreach (CartItem cartitem in items)
                    //{

                    //}
                    transactionscope.Complete();
                    success = true;
                   //  return newOrder;
                }
                catch (Exception ex)
                {
                    Console.WriteLine("An error occured. "+ "The operation cannot be retried." + ex.Message);                
                }
                if (success)
                    db.SaveChanges();
                else
                    Console.WriteLine("The operation could not be completed");

                // Dispose the object db.
                db.Dispose();          
           
}







public void AddItem(long orderid,int itemID,int quantity,decimal price,short discountcode)
      {
          sc_OrderDetails item = new sc_OrderDetails();

          item.ItemId = itemID;
          item.Quantity = quantity;
          item.Price = price;
          item.DiscountCode = discountcode;
          item.OrderId = orderid;

          orderhead.sc_OrderDetails.Add(item);

      }







public long PersistOrder()
      {
          db.sc_Order.Add(orderhead);
          db.SaveChanges();

          long id = (orderhead.OrderId);
          return id;
      }

      public void InsertOrderDetails()
      {
          foreach (sc_OrderDetails orderdetails in orderhead.sc_OrderDetails)
          {
              db.sc_OrderDetails.Add(orderdetails);
              db.SaveChanges();
          }
      }





首先我保存

订单然后在orderdetails 表中插入itemdetails,首先将它收集在 sc_OrderDetails列表中,然后我调用insertOrderDetails()然后保存记录但是如果我正在保存 2个或更多记录然后在第一个记录之后所有记录重复两次 ..



orderdetailid | orderid | itemid |数量|价格折扣

| 21 | 26 | 1 | 12 | 120.00 12

62 | 26 | 1 | 12 | 130.00 12

63 | 26 | 1 | 12 | 140.00 12

64 | 26 | 1 | 12 | 150.00 12

65 | 26 | 1 | 12 | 130.00 12
$ b $ 66 | 26 | 1 | 12 | 140.00 12

67 | 26 | 1 | 12 | 150.00 12




boalded记录是重复记录....请尽快给我解决方案



提前感谢...



first i save the
orders then insert itemdetails in orderdetails table, first it is collected in sc_OrderDetails list then i call insertOrderDetails() then records are saved but if i am saving 2 or more records then after 1st record all record repeats two times..

orderdetailid| orderid |itemid | Quantity | Price Discount
61 |26 |1 |12 |120.00 12
62 |26 |1 |12 |130.00 12
63 |26 |1 |12 |140.00 12
64 |26 |1 |12 |150.00 12
65 |26 |1 |12 |130.00 12
66 |26 |1 |12 |140.00 12
67 |26 |1 |12 |150.00 12


the boalded records are repeated records....please give me regarding solution as soon as possible

thanks in advance...

推荐答案

试试这些,



Try these,

using (TransactionScope transactionscope = new TransactionScope())
{
    long oid = newOrder.PersistOrder();
    Order objOrder=new order();
    //Insert content into order table
    objOrder.savechanges();

    OrderDetails objdetail=new OrderDetails(); 
   //Insert content into Orderdetails table
    objdetail.savechanges();

}


这篇关于重复记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆