Пользовательский метод расширения для упрощения оператора LINQ to SQL

У меня есть фрагмент кода LINQ, который мне нужно использовать во многих запросах

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))

Это хорошо переводится на SQL (и более чем эффективно для моих конкретных потребностей), но делает мои запросы уродливыми. Есть ли способ сделать это менее многословным? Возможно, метод расширения, который возвращает выражение>? Обратите внимание, что я не хочу получать данные на стороне клиента (запускать их на сервере как SQL), что немного усложняет ситуацию. Например:

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

Я попытался написать метод расширения, который делает это, но провайдер просто игнорирует этот вызов или выдает исключение, заявляя, что не знает, как преобразовать этот вызов в SQL. Можем ли мы каким-то образом расширить генератор SQL, чтобы сделать это для нас, или предоставить что-то, что будет генерировать тот же SQL?

Заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос