Не как в LINQ to SQL - PullRequest
       0

Не как в LINQ to SQL

7 голосов
/ 12 января 2011

Я должен выбрать данные из базы данных, используя LINQ to SQL.Существует условие, что я должен выбрать только запись с идентификатором , а не , содержащую «0000» в начале (весь идентификационный номер состоит из шести цифр).

Например, когда я хочу выбрать началос "0000" я буду использовать:

var idList = (from s
    in db.TABLE
    where s.ID.StartsWith("0000")
    select s.ID
    );

, но мне нужно использовать метод больше как NotStartsWith или NotContains вместо StartsWith.Это возможно?

Ответы [ 5 ]

7 голосов
/ 12 января 2011

Вы пробовали !s.ID.StartsWith("0000")? (т.е. используя оператор отрицания !)

3 голосов
/ 12 января 2011

Startswith возвращает логическое значение.Таким образом, вы можете просто отрицать StartsWith.Ваш запрос должен быть как ниже;

var idList = (from s
    in db.TABLE
    where !s.ID.StartsWith("0000")
    select s.ID
    );
3 голосов
/ 12 января 2011
var idList = (from s
    in db.TABLE
    where !s.ID.StartsWith("0000")
    select s.ID
    );
2 голосов
/ 12 января 2011

Конечно ... просто добавьте оператор логического отрицания (!) Перед заявлением StartsWith:

! S.ID.StartsWith ("0000")

0 голосов
/ 12 января 2011

Вот удобный метод расширения

public static class StringExtenstionMethods
{
    public static bool DoesNotStartWith(this string source,string target)
    {
        return !source.StartsWith(target);
    }
}


var idList = (from s      
in db.TABLE      
where s.ID.DoesNotStartWith("0000")      
select s.ID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...