I have a query method where I sometimes include additional tables “Category” and “Manufacturer” depending on the situation. However, whenever I run the query, the category and manufacturer navigation properties are always blank. What am I doing wrong?
private IQueryable<Item> GetQuery(ItemFilter filter, ItemCacheContainer context)
{
//Perform optional Joins
ObjectQuery<Item> query = context.Items;
if (filter.JoinCategory)
query.Include("Category");
if (filter.JoinManufacturer)
query.Include("Manufacturer");
return query.Where(i =>
(!filter.ItemId.HasValue
|| i.ItemId == filter.ItemId.Value));
}
Also, here’s how I’m using the GetQuery method but when I put a breakpoint in ConvertItemFromCache I see those null navigation properties.
GetQuery(filter, context)
.ToList()
.ConvertAll(ConvertItemFromCache)
.SingleOrDefault();
Thanks!
You need to set
queryto the result ofquery.Include("...")So in your example: