A: 

Many to Many relationships aren't supported in Linq2Sql. :(

There are a couple of workarounds:

http://www.iaingalloway.com/many-to-many-relationships-in-linq-to-sql

http://blogs.msdn.com/mitsu/archive/2008/03/19/how-to-implement-a-many-to-many-relationship-using-linq-to-sql-part-ii-add-remove-support.aspx

Weird that the picture of your db schema is the same as one of the articles...

jfar
+2  A: 
// Associate each product to the a new order_detail.
orderDetailList.Add(new Order_Detail
{
    Product = new SqlContext.Product
    {
        Foo = product.Foo
    }
});

One thing that is wrong here, is that you create a new product to set on your Order_Detail.Product property. Instead , you should take the product that's comming from the database and set it on the property.

I'm not sure what order.ProductList has inside - if these products are loaded from the database then you should set them directly to your Order_Detail.Product instead of doing new SqlContext.Product.

@jfar L2S does support many-to-many relationships , you just can't have a property Products on your Order ( in this case this is actually a good thing because OrderDetails has Quantity and other properties).

sirrocco
I actually don't really agree that it "supports m2m". The good thing about any other O/R Mapper is that you can do exactly that transverse you mention (both ways). User.Roles.Add(SomeRole), given the typical user-user_role-role scheme. 1..n Relationships are nice in Northwind, but Linq2SQL falls terribly short when you want to go beyond (and you'll almost always have to).
Martín Marconcini