2015-07-20 4 views
0

У меня есть эта IQueryable здесь:Сравнить IQueryable в строку в MVC

  • Первая проблема:

    Ошибка, которая показана на рисунке. Я не могу найти приведение, применимое к этой ситуации. Мне было интересно, есть ли у кого-нибудь идея, где его найти.

  • Вторая проблема:

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

Путь я бы назвал IQueryable бы как:

var code = securityCodeCheck(item.SelectedDistrict); 

и мое сравнение было бы как:

if (item.DistrictCode == code) 
{ 
    return view(); 
} 

else{ 
    return RedirectToAction(....); 
} 

как бы я идти о возможности сравнить 2 успешно?

ответ

1

Для первой задачи, вы выбираете District.securityCode (который я предполагаю, что это строка)

Попробуйте выбрать District, как это было бы правильным IQueryable исправить ошибку, так как метод четко определяет его как тип возвращаемого значения.

Изменение кода будет таким, как показано ниже.

var query = from District in db.Districts 
where District.leaID.Equals(district) 
select District; 

Для задачи 2.

Вы можете использовать, как показано ниже.

var code = securityCodeCheck(item.SelectedDistrict); 

if(item.DistrictCode == code.First().securityCode) 
{ 
//do stuff 
} 
+0

Первая проблема была исправлена. Для второй проблемы строка: 'item.DistrictCode == code.securityCode' не работает. Ошибка: 'Operator '==' не может применяться к операндам типа 'string' и 'System.linq.IQueryable '' –

+0

Кроме того, когда я набираю 'code.',' securityCode 'не появляется в качестве опции. Только такие параметры, как 'toString, toArray' –

+0

@BrandonLumsden Oh .. так как его IQueryable я должен получить один из элементов, которые он содержит. Я сейчас обновлю свой ответ. – scartag

 Смежные вопросы

  • Нет связанных вопросов^_^