Фильтр Linqdatasource после извлечения базы данных - PullRequest
1 голос
/ 01 сентября 2011

Спасибо за любые идеи, с которыми вы можете помочь!

Очень просто, я вызываю набор контактов из базы данных, используя LinqToSql.Два из этих столбцов «FirstName» и «LastName» зашифрованы.

Я расшифровываю их на лету, как вы видите в прилагаемом коде.Тем не менее, я также хочу фильтровать на основе LastName.Проблема в том, что если я делаю сравнение в утверждении, оно сравнивает зашифрованное значение с текстовым значением.

Мне нужно каким-то образом получить результирующие данные для моего вида сетки, а затем отфильтровать их по факту, опять же не по значениям базы данных, а по данным (и дешифрованным данным), которые у меня уже есть.

Идеи ??Спасибо!

    protected void ContactsLDS_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
    DatabaseDataContext db = new DatabaseDataContext();

    MyAES aes = new MyAES();

    var v1 = from s in db.Contacts
             select new Contact()
             {
                 ContactId = s.ContactId,
                 FirstName = (s.FirstName == null ? "" : aes.DecryptString(s.FirstName)),
                 LastName = (s.LastName == null ? "" : aes.DecryptString(s.LastName)),
             };

    e.Result = v1;
}

1 Ответ

1 голос
/ 04 сентября 2011

Эти два поста помогли мне ответить на этот вопрос:

Linq "Не удалось перевести выражение ... в SQL и не удалось обработать его как локальное выражение."

Gridview с использованием общего списка в качестве источника данных и автоматически генерируемых столбцов

Я только что закончил с того, что начал собирать данные в зашифрованном формате, затем запускать второй запрос и расшифровывать его.Наконец, когда мне захотелось отфильтровать данные, я запустил третий, запустив "where str.startswith ()".

Немного дополнительной обработки, но работа выполнена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...