Предполагая, что код на самом деле является VARCHAR, вы можете попробовать:
var input = "919898989898";
var allMatches = from item in dbContext
where input.StartsWith(item.Code)
orderby item.Code.Length descending
select item;
var longestMatch = allMatches.FirstOrDefault();
Или поместить запрос в один оператор, используя точечные обозначения вместо выражений запроса:
var longestMatch = dbContext.Where(item => input.StartsWith(item.Code))
.OrderByDescending(item => item.Code.Length)
.FirstOrDefault();
Теперь эти запросы в порядке логически - но вам нужно будет попробовать их, чтобы проверить, правильно ли они переведены в SQL.