C# linq到sql插入的帮助

C# linq到sql插入的帮助,c#,linq-to-sql,C#,Linq To Sql,我使用三个表,但只插入两个表(一个称为图像,另一个称为中间表)。他们都有关系 表格: 产品组-- ID 名称 ProductGroup_图像-- ProductGroupID 图像SID 图像- ImageID 路径 下面的代码可以写得更优雅些吗 using (StoreDataContext db = new StoreDataContext()) { Image img = new Image

我使用三个表,但只插入两个表(一个称为图像,另一个称为中间表)。他们都有关系

表格:

产品组--
ID
名称

ProductGroup_图像--
ProductGroupID
图像SID

图像-
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();
        }

您可以尝试以下方法

 ProductGroup temp = db.ProductGroups.Where(a => a.Name == txtName.Value.Select(a).Single();
temp.Images.Add(img);
db.SubmitChanges;

既然有引用属性,为什么还要担心ID呢

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

太棒了,我不知道你能这样做。为什么书籍和在线示例显示使用语句插入dataContext中的示例并使用db.tableName.InsertOnsubmit?书籍和在线示例通常教授dataContext和Table的公共契约,而不是微妙的对象跟踪功能。url字符串前面的@符号是什么?