You want to use the .Include(string) method references in this "Shaping query results" article.
var item = from InventoryItem item in
db.Inventory.Include("ItemTypeReference").Include("OrderLineItems")
where item.ID == id
select item;
There is probably a "sql" style syntax for the Includes as well.
Also see this article about moving from LINQ-to-SQL to LINQ-to-Entities.
For others looking for a solution to this problem for Linq to SQL you want to do the following (Substitute DataContext and other types for whatever you have):
using (DataContext db = new DataContext())
{
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<InventoryItem>(ii => ii.ItemTypeReference);
options.LoadWith<InventoryItem>(ii => ii.OrderLineItems);
db.LoadOptions = options;
var item = from InventoryItem item in db.Inventory
where item.ID == id
select item;
}
This will load the properties specified in LoadWith whenever the parent item (InventoryItem) is loaded, for that particular context.
In response to some further questions from James and Jesper, check out this question
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…