Я много использовал FirstOrDefault в своем коде (это привычка, я много использовал linq2sql в прошлом) и использую его в Acumatica. В рамках поддержки разработки его следует использовать только в том случае, если вы ожидаете одного результата.
У меня есть код на SOOrderEntry, который получает элемент в текущей строке, нажав кнопку и проверив несколько вещей. Это в моем расширении Graph.
Этот код работал до обновления:
SOLine Line = Base.Transactions.Current;
InventoryItem Item = SelectFrom<InventoryItem>.Where<InventoryItem.inventoryID.IsEqual<@P.AsInt>>.View.Select(Base, Line.InventoryID).FirstOrDefault();
InventoryItemExt ItemExt = Item.GetExtension<InventoryItemExt>();
Результат не такой, как ожидалось. Line.InventoryID возвращает 10045, что является правильным элементом. Item.InventoryID: 10046