помогите с linq to sql вставить - PullRequest
0 голосов
/ 22 декабря 2010

Я работаю с тремя таблицами, но только вставляю в две (одна называется изображения, а другая промежуточная таблица). Все они имеют отношения.

Таблицы:

ProductGroups--
ID
Имя

ProductGroup_Images--
ProductGroupID
ImagesID

Изображения-
ImageID
Путь

Может ли следующий код быть написан более элегантно?

using (StoreDataContext db = new StoreDataContext())
        {                  
            Image img = new Image
            {
                Path = "https://s3.amazonaws.com/mystore/images/public/" + FileUpload1.PostedFile.FileName,    
            };
            db.Images.InsertOnSubmit(img);
            db.SubmitChanges();

            var pg = db.ProductGroups.Where(a => a.Name == txtName.Value).Select(b => b.ID).Single();

            ProductGroups_Image xref = new ProductGroups_Image
            {
                ProductGroupsID = pg,
                ImagesID= img.ImagesID
            };
            db.ProductGroups_Images.InsertOnSubmit(xref);
            db.SubmitChanges();
        }

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

Зачем беспокоиться об идентификаторах, если у вас есть ссылочные свойства.

Image img = new Image();
img.Path = @"https://s3.amazonaws.com/mystore/images/public/"
  + FileUpload1.PostedFile.FileName;

ProductGroups_Image xref = new ProductGroups_Image();
xref.Image = img;

using (StoreDataContext db = new StoreDataContext())
{
  ProductGroup pg = db.ProductGroups.Where(a => a.Name == txtName.Value).Single();

  xref.ProductGroup = pg;

  db.SubmitChanges();
}
0 голосов
/ 22 декабря 2010

Вы можете попробовать что-то вроде следующего ...

 ProductGroup temp = db.ProductGroups.Where(a => a.Name == txtName.Value.Select(a).Single();
temp.Images.Add(img);
db.SubmitChanges;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...