Может ли кто-нибудь сказать мне, почему это работает в LinqPad, но не как выражение C# в моем приложении?Linq to Entities - «Невозможно создать постоянное значение типа« System.Object »...»
Я использую Entity Framework ...
from p in Productions
join t in MaterialTransactions
on p.Prodn_ID equals t.Prodn_ID
where p.WO_ID == 2345
orderby p.Date descending
select new
{
Id = p.Prodn_ID,
Date = p.Date,
Line = (p.ProdLine.Factory.Factory_No + '/' + p.ProdLine.ProdLine_No.ToString()),
Qty = p.Qty,
Wgt = (double)p.ActWgt,
Speed = (double)p.ActSpeed,
MaterialUsed = t.Material.Name}
Я получаю System.Exception
«Невозможно создать постоянное значение типа„System.Object“. Только примитивные типы или типы перечисления поддерживаются в этом контексте «.
В LINQ Pad возможно использование LINQ-to-Objects, тогда как LINQ-to-Entities имеет разные правила. Синтаксис один и тот же, но их функциональность/реализация различны. – Belogix
Каковы типы 'SQL' столбцов' ProdLine' и 'Material'? – Sheridan
без таблиц и данных Я бы предположил, что проблема Line = ... является проблемой, попробуйте прокомментировать это и посмотреть, что вы получаете. – BlackICE