My table structure is this
Orders
------
Id int identity
OrderDate smalldatetime
OrderStatusid tinyint
Products
--------
Id int identity
Name varchar(50)
What you are doing now will work just fine.
If you would like to avoid doing a database query when assigning ode.Products, then you could use the following alternative:
// substitute your actual qualified entity set name
ode.ProductsReference.EntityKey =
new EntityKey("MyEntities.ProductsEntitySetName", "Id", 2);
This is faster, but less readable. Also, the Products property will be null until you Load it. But for an insert, this is often OK.