Я пытаюсь заменить представление хранимой процедурой для поиска результатов по ключевому слову. Но когда я передаю ключевое слово, оно выдает ошибку
Результат запроса не может быть перечислен более одного раза
но работает нормально, если ключевое слово оставить пустым. Ниже приведен мой метод получения результатов поиска. Кто-нибудь может дать какие-либо предложения о том, как перечислить результаты в этом случае?
public IEnumerable <BrandNameToIngredient> GetBrandNameToIngMapResults(string Keyword)
{
IEnumerable<BrandNameToIngredient> lstBrandNametoIng = from map in DB.USP_BRANDNAME_INGREDIENT_MAP()
select new BrandNameToIngredient
{
IngredientBrandNameMapID=map.INGREDIENT_PRODUCT_MAP_ID,
BrandName = map.FDA_BRAND_NAME, //From Table 1
PFCName = map.PFC_DESC==null?"":map.PFC_DESC, //From Table 1
IngredientName = map.INGREDIENT_NAME, //From Table 2
HCIngredientName = map.HC_INGREDIENT_NAME, //From Table 2
KeywordfromPage = Keyword
};
if (!string.IsNullOrEmpty(Keyword))
{
lstBrandNametoIng = lstBrandNametoIng.Where(x => x.BrandName.ToLower().Contains(x.KeywordfromPage.ToLower()) //Able to get result
|| x.PFCName.ToLower().Contains(x.KeywordfromPage.ToLower()) //Able to get result
|| x.IngredientName.ToLower().Contains(x.KeywordfromPage.ToLower()) //Error Here
|| x.HCIngredientName.ToLower().Contains(x.KeywordfromPage.ToLower())); //Error Here
}
return lstBrandNametoIng;
}