Reputation: 1734
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
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
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