Это зависит, на котором виде эффективности Вы заботитесь о.
Ваша версия использует больше памяти из-за дополнительной копии с использования substr.
альтернативная версия могла бы искать исходную строку последнее вхождение подстроки, не делая копию, но вероятно произойдет медленнее из-за большего количества тестирования.
, Вероятно, самый эффективный путь состоит в том, чтобы сделать символ символом цикла от-sterlen (тест) положение до конца строки и выдержать сравнение. Это - минимальная сумма сравнений, которые можно надеяться сделать и существует едва любая используемая дополнительная память.
Требуется пара изменений:
db.DeleteObject(detail);
и
db.SaveChanges();
Kindness,
Дэн
PS: Вы использовали Linq to SQL, а затем перешли на Entity Framework?