Самый простой способ - сделать запрос для связанных сущностей и использовать свойства навигации:
т.е.
Product p = new Product{
ID = 5,
Name = "Bovril",
Category = ctx.Categories.First( c => c.ID == 5)
};
ctx.AddToProducts(p);
ctx.SaveChanges();
Если вы хотите избежать запроса к базе данных, возможно, самый простой подход - использовать объект STUB, т.е.
// this is a stub, a placeholder for the real entity
Category c = new Category {ID = 5};
// attach the stub to the context, similar to do a query
// but without talking to the DB
ctx.AttachTo("Categories", c);
Product p = new Product{
ID = 5,
Name = "Bovril",
Category = c
};
ctx.AddToProducts(p);
ctx.SaveChanges();
Если вам нужна дополнительная помощь по этой технике заглушки, прочитайте эту запись в блоге по теме.