2011-08-19 34 views
0

enter image description here我有表名爲如何添加一個條目使用LINQ to實體兩個表

    product 

        product_id 
        product_Name 
        product_Price 
        product_Description 
        product_image 
        category_id 

another table  category 
        category_id 
        category_name 

我有文本框的新形式像

        txtprodname 
            txtproddescrip 
            txtproductprice 
            picturebox1 
            txtcategoryname 

我試圖添加新產品使用下面的代碼

我使用實體框架的productTable ..

 public byte[] imageToByteArray(System.Drawing.Image image) 
    { 
     MemoryStream ms = new MemoryStream(); 
     image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 
     return ms.ToArray(); 
    } 


    private void btnSave_Click(object sender, EventArgs e) 
    { 
     Image image = pictureBox1.Image; 
     byte[] bit = null; 

     bit = imageToByteArray(image); 

     product pd = new product(); 
     pd.product_Name = txtprodname.Text; 
     decimal price = Convert.ToDecimal(txtproductprice.Text); 
     pd.product_Price = price; 
     pd.product_Description = txtproddescrip.Text;   
     pd.product_Image = bit; 
     tsgentity.AddToproducts(pd); 
     tsgentity.SaveChanges(); 
     this.Close();  

    } 

我嘗試新的產品添加到產品表..但我沒有任何想法如何類別名稱添加到類別表.......使用LINQ

如何添加類別名稱類別表和更新類別名稱產品表,我已經進入...

怎麼辦與新產品一起進入這個名稱更新產品表中的類別ID添加到產品表

任何人都可以幫忙...

我使用的WinForms .....和C#語言

這是我的實體圖....

回答

1

我假設你想先檢查,如果輸入的類別已經存在,並希望如果要重用確實。我還假設tsgentity是你的DbContext:

string categoryName = category_name.Text; 
Category category = tsgentity.Categories.FirstOrDefault(c => c.category_name == categoryName); 
if (category == null) 
    category = new Category() { category_name = categoryName }; 

pd.category = category; 
tsgentity.Categories.Add(category); 

上面的代碼運行tsgentity.SaveChanges()之前應執行。

+0

哦好吧..它是自動更新產品表類別ID ..... –

+0

它的確如此。這與ORM中的關係有關。 –

+0

我有類別描述文本框我也需要做類別描述也相同.. –

0

如果你已經正確映射一切,你應該能夠做這樣的事情:

var pd = new Product(); 
//Set properties of product 

var c = new Category { Name = txtCategoryName.Text, Description = txtCategoryDescription.Text }; 
pd.Category = c; 

tsgentity.AddToproducts(pd); 
tsgentity.SaveChanges(); 

希望這有助於。 :)

+0

@hi abbas是否有任何可能性指定使用實體的表的外鍵 –

+0

對不起,但你的問題對我來說並不是很清楚。你想實現什麼? – Abbas

相關問題