Yargicx
Yargicx

Reputation: 1734

Join With List Collection

I try to write a join LINQ query. but it's raise syntax error. what can i do? i need user's conversation messages.

/*
Conversations = Header info
c.Users = List<ApplicationUser>
*/
public List<ConversationMessage> GetAll(ApplicationUser user)
{
    var query = from m in _db.ConversationMessages
        join c in _db.Conversations on m.ConversationId equals c.ConversationId
        join u in _db.Users on c.Users.Contains(user) 
        select m;
}

Upvotes: 0

Views: 27

Answers (2)

Yargicx
Yargicx

Reputation: 1734

var query = from c in _db.Conversations
            where c.Users.Select(x => x.Id).Contains(user.Id)
            join m in _db.ConversationMessages on c.ConversationId equals m.ConversationId
           select m;

Upvotes: 0

Enigmativity
Enigmativity

Reputation: 117175

It seems to me that it should be something more like this:

public List<ConversationMessage> GetAll(ApplicationUser user)
{
    var query =
        from c in _db.Conversations
        where c.Users.Contains(user)
        join m in _db.ConversationMessages on c.ConversationId equals m.ConversationId
        select m;

    return query.ToList();
}

Upvotes: 1

Related Questions