У меня есть несколько связанных таблиц (объектов). Я пытаюсь получить объекты с помощью следующей LINQ:Linq: связанные объекты равны нулю, почему?
ObjectQuery<Location> locations = context.Location;
ObjectQuery<ProductPrice> productPrice = context.ProductPrice;
ObjectQuery<Product> products = context.Product;
IQueryable<ProductPrice> res1 = from pp in productPrice
join loc in locations
on pp.Location equals loc
join prod in products
on pp.Product equals prod
where prod.Title.ToLower().IndexOf(Word.ToLower()) > -1
select pp;
Этот запрос возвращает 2 записи, объекты ProductPrice, которые связаны Расположение объекта и продукт, но они равны нулю, и я не могу понять, почему. Если я пытаюсь заполнить их в LINQ, как показано ниже:
res =
from pp in productPrice
join loc in locations
on pp.Location equals loc
join prod in products
on pp.Product equals prod
where prod.Title.ToLower().IndexOf(Word.ToLower()) > -1
select new ProductPrice
{
ProductPriceId = pp.ProductPriceId,
Product = prod
};
У меня есть исключение «Лицо, или сложный тип„PBExplorerData.ProductPrice“не может быть построена в LINQ к Entities запрос» Может кто-то пожалуйста, объясните мне что происходит и что мне нужно делать? Спасибо
Благодарим за решение! Хотя ваше решение не получается лучше для меня (я предпочитаю использовать отложенную загрузку), но это позволило мне понять, где искать и что искать. Я обнаружил, что отложенная загрузка может быть выполнена с использованием метода Load() EntityReference в основном объекте. – mimic