2008-11-13 11 views
8

का उपयोग कर कई डेटाबेस टेबल में डालें मेरे पास एक साधारण परिदृश्य है जहां मेरे पास दो टेबल हैं जिनमें मैं डेटा जोड़ना चाहता हूं। वे प्राथमिक कुंजी/विदेशी कुंजी के साथ प्रबंधित होते हैं। मैं टेबल ए में नया डेटा जोड़ना चाहता हूं और फिर आईडी को पुनर्प्राप्त करना चाहता हूं और तालिका बीलिंक, एएसपी.नेट एमवीसी

मैं निश्चित रूप से संग्रहीत प्रक्रिया के साथ ऐसा कर सकता हूं, लेकिन मैं लिंक का उपयोग करके इसे करने की कोशिश कर रहा हूं।

सबसे अच्छा तरीका क्या है?

मैं निश्चित रूप से आईडी प्राप्त कर सकता हूं और दो अलग-अलग आवेषण कर सकता हूं लेकिन यह निश्चित रूप से चीजों को करने का एक बहुत अच्छा तरीका प्रतीत नहीं होता है।

db.Table.InsertOnSubmit(dbObject); 
db.SubmitChanges(); 

Int32 id = dbOject.Id; 

//Rest of the code 

सुंदर तरीके से ऐसा करने का कोई तरीका?

उत्तर

13

क्या आपके पास ऑब्जेक्ट रिलेशनल में 2 टेबल के बीच रिश्ते को परिभाषित किया गया है? यदि ऐसा है, तो आप linq स्वचालित रूप से दूसरी तालिका की आईडी संपत्ति असाइन करने का ख्याल रख सकते हैं।

उदाहरण ...
तालिका A - आदेश
OrderID
OrderDate

टेबल बी - आदेश आइटम
OrderItemId
OrderID
Itemid

कोड (का प्रयोग LINQ-हैं- एसक्यूएल):

Order order = new Order(); 
Order.OrderDate = DateTime.Now(); 
dataContext.InsertOnSubmit(order); 

OrderItem item1 = new OrderItem(); 
Item1.ItemId = 123; 
//Note: We set the Order property, which is an Order object 
// We do not set the OrderId property 
// LINQ will know to use the Id that is assigned from the order above 
Item1.Order = order; 
dataContext.InsertOnSubmit(item1); 

dataContext.SubmitChanges(); 
1

नमस्ते मैं इस कोड का उपयोग कर तीन तालिका में डेटा डालता हूं

Product_Table AddProducttbl = new Product_Table(); 
     Product_Company Companytbl = new Product_Company(); 
     Product_Category Categorytbl = new Product_Category(); 

     // genrate product id's 
     long Productid = (from p in Accountdc.Product_Tables 
         select p.Product_ID).FirstOrDefault(); 
     if (Productid == 0) 
      Productid++; 
     else 
      Productid = (from lng in Accountdc.Product_Tables 
         select lng.Product_ID).Max() + 1; 
     try 
     { 
      AddProducttbl.Product_ID = Productid; 
      AddProducttbl.Product_Name = Request.Form["ProductName"]; 
      AddProducttbl.Reorder_Label = Request.Form["ReorderLevel"]; 
      AddProducttbl.Unit = Convert.ToDecimal(Request.Form["Unit"]); 
      AddProducttbl.Selling_Price = Convert.ToDecimal(Request.Form["Selling_Price"]); 
      AddProducttbl.MRP = Convert.ToDecimal(Request.Form["MRP"]); 
      // Accountdc.Product_Tables.InsertOnSubmit(AddProducttbl); 
      // genrate category id's 
      long Companyid = (from c in Accountdc.Product_Companies 
           select c.Product_Company_ID).FirstOrDefault(); 
      if (Companyid == 0) 
       Companyid++; 
      else 
       Companyid = (from Ct in Accountdc.Product_Companies 
          select Ct.Product_Company_ID).Max() + 1; 

      Companytbl.Product_Company_ID = Companyid; 
      Companytbl.Product_Company_Name = Request.Form["Company"]; 

      AddProducttbl.Product_Company = Companytbl; 
      //Genrate Category id's 
      long Categoryid = (from ct in Accountdc.Product_Categories 
           select ct.Product_Category_ID).FirstOrDefault(); 
      if (Categoryid == 0) 
       Categoryid++; 
      else 
       Categoryid = (from Ct in Accountdc.Product_Categories 
           select Ct.Product_Category_ID).Max() + 1; 
      Categorytbl.Product_Category_ID = Categoryid; 
      Categorytbl.Product_Category_Name = Request.Form["Category"]; 
      AddProducttbl.Product_Category = Categorytbl; 

      Accountdc.Product_Tables.InsertOnSubmit(AddProducttbl); 
      Accountdc.SubmitChanges(); 

     } 
     catch 
     { 
      ViewData["submit Error"] = "No Product Submit"; 
     } 
संबंधित मुद्दे