[Linq-To-Sql] Как вернуть два значения разных типов данных? - PullRequest
2 голосов
/ 18 мая 2010

Вот мой метод хранилища, который возвращает UserId,

public IQueryable<int> getLoginStatus(string emailId, string password)
{
    return (from r in taxidb.Registrations
           where (r.EmailId == emailId && r.Password == password)
           select r.UserId);
}

Как вернуть UserName, которая является строкой вместе с UserId ... Есть предложения?

EDIT:

Я пытался это работает, но как узнать, содержит ли результат запроса записи или нет,

    public RegistrationBO getLoginStatus(string emailId, string password)
    {
        return (from r in taxidb.Registrations
                where (r.EmailId == emailId && r.Password == password)
                select new RegistrationBO()
                {
                    UserId = r.UserId,
                    UserName = r.UserName
                }).FirstOrDefault();
    }

Ответы [ 2 ]

3 голосов
/ 18 мая 2010

Вам нужно определить класс, который будет содержать результат, а затем использовать это:

return (from r in taxidb.Registrations
       where (r.EmailId == emailId && r.Password == password)
       select new SomeClass { r.UserId, r.UserName });

Кажется бессмысленным, хотя ... SLaks правильно, что вы можете просто вернуть пользователя:

return (from r in taxidb.Registrations
       where (r.EmailId == emailId && r.Password == password)
       select r);
1 голос
/ 18 мая 2010

Вы должны вернуть все объекты User, изменив предложение select на select r и изменив тип возврата на IQueryable<User>.

...