Niestandardowa metoda rozszerzenia w celu uproszczenia instrukcji LINQ do SQL

Mam fragment kodu LINQ, którego muszę użyć w wielu zapytaniach

let catchmentId = Convert.ToInt32(
        phy.PhysicalProperty_binData.Substring(offset + 3, 1) +
        phy.PhysicalProperty_binData.Substring(offset + 2, 1) +
        phy.PhysicalProperty_binData.Substring(offset + 1, 1) +
        phy.PhysicalProperty_binData.Substring(offset, 1))

To dobrze przekłada się na SQL (i jest bardziej niż wydajne dla moich specyficznych potrzeb), ale sprawia, że ​​moje zapytania wyglądają brzydko. Czy jest jakiś sposób, żeby uczynić to mniej gadatliwym? Być może metoda rozszerzenia, która zwraca Expression>? Zauważ, że nie chcę pobierać danych po stronie klienta (uruchamiaj je na serwerze jako SQL), co sprawia, że ​​sprawy są nieco bardziej skomplikowane. Na przykład:

let catchmentId = phy.PhysicalProperty_binData.AnExtensionMethodHere<int>(offset)

Próbowałem napisać metodę rozszerzenia, która to robi, ale dostawca po prostu ignoruje to wywołanie lub zgłasza wyjątek stwierdzający, że nie wie, jak przetłumaczyć to wywołanie na SQL. Czy możemy jakoś rozszerzyć generator SQL, aby zrobił to dla nas lub udostępnił coś w sposób, który wygeneruje ten sam SQL?

Z góry dziękuję!

questionAnswers(3)

yourAnswerToTheQuestion