2013-06-30 4 views
-3

Можете ли вы дать мне решение о моем исходном коде о возврате linq в моем методе. Мой исходный код:Как вернуть значение из linq в методе?

public int GetRole(string user, string pass) 
    { 
     TAEntities db = new TAEntities(); 
     var Hasil = from u in db.User 
        join r in db.Role 
        on u.id_Role equals r.id_Role 
        where u.userName == user && u.password == pass 
        select r.id_Role; 

     return Hasil; 
    } 

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

public int GetRole(string user, string pass) 
    { 
     Tugas_AkhirEntities db = new Tugas_AkhirEntities(); 
     var Hasil = from u in db.User 
        join r in db.Role 
        on u.id_Role equals r.id_Role 
        where u.userName == user && u.password == pass 
        select r.id_Role; 

     return Hasil.FirstOrDefault(); 
    } 

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

if (model.GetRole(model.UserName,model.Password) == 1) 
     { 
      return RedirectToAction("Index", "Home"); 
     } 

     else 
      return RedirectToAction("Contact", "Home"); 

Можете ли вы дать мне больше решений?

+2

В чем проблема, которую вы видите с кодом? Не удается ли его скомпилировать? Вызывает ли это исключение? Возвращает ли оно неправильное значение? Скажите нам, в чем проблема, поэтому мы можем вам помочь. –

+4

Кроме того, как только мы закончим исправление вашей проблемы, я чувствую себя обязанным указать, что ваш код - это ОГРОМНАЯ БЕЗОПАСНОСТЬ, ожидающая взлома. –

+0

Вы отредактировали вопрос, но я до сих пор не знаю, что означает «исходный код является ложным». Скомпилирует ли он? Не стесняйтесь ответить здесь в разделе комментариев. –

ответ

4

Hasil - IEnumerable<int> или IQueryable<int>, и ваш метод возвращает int. Вам нужно выбрать одно из значений, используя First, FirstOrDefault, Single или SingleOrDefault, например.

return Hasil.First(); 

В качестве альтернативы, изменить тип возвращаемого вашего метода IEnumerable<int> или IQueryable<int>.

+0

Спасибо @ Lee .. это очень полезно – Greditasari

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