как использовать "не равно", где условие, используя linq с структурой лица - PullRequest
0 голосов
/ 02 мая 2018

как использовать «не равно» в условии, где используется LINQ с каркасом сущности.

public ActionResult ViewOfficeType()
{            
   return View(entity.TBL_OFFICETYPE.Where(p => p.STATUS<>"D").ToList());
}

показывает недопустимое выражение '>'

если я использую '! ='. Это не показывает ошибку. Но это не работает.

Ответы [ 4 ]

0 голосов
/ 02 мая 2018
var status = entity.TBL_OFFICETYPE.Select(p => p.STATUS == "D");
           return View(entity.TBL_OFFICETYPE.Where(p => !status.Contains(p.STATUS == "D")).ToList());

плз попробуйте это

0 голосов
/ 02 мая 2018

Вы можете использовать следующие подходы

  1. Используйте оператор! = В вашем лямбда-выражении

public ActionResult ViewOfficeType()
{            
   return View(entity.TBL_OFFICETYPE.Where(p => p.STATUS != "D").ToList());
}
  1. Использовать! String.Equals

public ActionResult ViewOfficeType()
{            
   return View(entity.TBL_OFFICETYPE.Where(p => !p.STATUS.Equals("D")).ToList());
}

Примечание. Помните о проблемах сравнения строк, таких как кодировка символов, чувствительность к регистру и т. Д.

0 голосов
/ 02 мая 2018

Я бы предпочел метод расширения следующим образом:

public static class StringExtension
{
    public static bool NotEquals(this string source, string target)
    {
        return !(source.Equals(target));        
    }
}

Как это работает:

   string source = "Test"; // Sample / Source data

// Проверено с помощью «test», результат равен true, поскольку регистр отличается, поэтому две строки различны

   source.NotEquals("test"); 

// Проверено с помощью «Test», результат равен false, поскольку они одинаковы

   source.NotEquals("Test"); 

В методе расширения возможно гораздо больше вещей, в зависимости от того, хотите ли вы игнорировать регистр, вы можете просто передать StringComparison.OrdinalIgnoreCase в методе Equals, тогда «Test» будет оцениваться как «test» (регистр игнорируется) )

0 голосов
/ 02 мая 2018

вы можете использовать оператор ! на Equals()

public ActionResult ViewOfficeType()
{            
    return View(entity.TBL_OFFICETYPE.Where(p => !p.Equals("D")).ToList());
}
...