запрос linq из нескольких таблиц - PullRequest
0 голосов
/ 19 ноября 2009
public ActionResult myItems() {

        var dataContext = new RecordsDataContext();
        MembershipUser myObject = Membership.GetUser();         
        string CurrentUserName = myObject.UserName.ToString();    

       var user = from i in dataContext.myUsers
                   where i.userName ==CurrentUserName
                   select i.id;

        var items=from j in dataContext.OtherUsers
                   where j.id_user==user   /*error:operator '==' cannot be aplied to operands of type 'int' and 'System.Linq.Iquerable<int>'*/
                   select j;



           return View(items);

    }

Пожалуйста, помогите мне с этой ошибкой

1 Ответ

0 голосов
/ 19 ноября 2009

На самом деле пользователь из первого запроса не является ни одним результатом int. Вам нужно проверить, если user.Count () не равно 0, и вы можете использовать user.First () для получения результата первой строки.

Но я предлагаю использовать join (что-то подобное):

public ActionResult myItems() {
    var dataContext = new RecordsDataContext();
    var query = from i in dataContext.myItems
                join ou in dataContext.OtherUsers
                on i.id_user equals ou.id_user //check real reference, since I don't know
                join mu in dataContext.myUsers
                on ou.id_user equals mu.id_user
                where mu.username == Membership.GetUser().UserName.ToString()
                select i;
    return View(query);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...