Как добавить одну запись для двух таблиц, используя linq для сущностей - PullRequest
0 голосов
/ 19 августа 2011

enter image description here У меня есть таблица с именем

                    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, используя следующий код

Я использую Entity Framework ..

     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

как добавить имя категории в таблицу категорий и обновить таблицу продуктов с введенным мной именем категории ...

как обновитьИдентификатор категории в таблице продуктов с указанием этого имени вместе с новым продуктом, добавленным в таблицу продуктов

может помочь в этом ....

Я использую winforms .....и c # language

это моя диаграмма сущностей ....

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Я предполагаю, что вы хотите сначала проверить, существует ли введенная категория, и хотите повторно использовать ее, если она существует.Я также предполагаю, что 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 голосов
/ 19 августа 2011

Если вы все правильно сопоставили, вы сможете сделать что-то вроде этого:

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();

Надеюсь, это поможет.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...