I don't think it's possible at the moment, but Mark is looking into "allowing object graphs to be saved with a single call, if that’s actually possible" for v2 (see his blog post: http://blog.markrendle.net/2013/09/18/simple-data-2-0/, especially the "Better WithStuff" paragraph).
However you could avoid copying each property value by converting your "newOrder" object to dynamic and simply "adding" the "CustomerId" value to it, like this:
var d = newOrder.ToDynamic();
d.CustomerId = newOrder.Customer.Id;
_db.Orders.Insert(d);
where "ToDynamic()" is a simple extension method:
public static dynamic ToDynamic(this object @this)
{
IDictionary<string, object> expando = new ExpandoObject();
foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(@this.GetType()))
{
expando.Add(property.Name, property.GetValue(@this));
}
return expando as ExpandoObject;
}
Simple.Data will ignore the original "Customer" property during insert, as the underlying table does not have column for this.