The problem was because of this...
Expression<Func<TranslationText, bool>> expression;
if (string.IsNullOrEmpty(neutralText))
expression = FindLocalizedText(languageId, neutralText);
else
expression = FindLocalizedTextByLanguage(languageId);
Should be this instead :Expression<Func<TranslationText, bool>> expression;
if (string.IsNullOrEmpty(neutralText))
expression = FindLocalizedTextByLanguage(languageId);
else
expression = FindLocalizedText(languageId, neutralText);