I'm trying to select items from database with List in a “WHERE” condition.
Assume we have the following entities:
Code: Select all
public class Message
{
public Guid Id { get; set; }
public String Text { get; set; }
public bool IsPrivate { get; set; }
public Guid UserId { get; set; }
}
public class User
{
public Guid Id { get; set; }
public String Name { get; set; }
public int Age { get; set; }
}
Code: Select all
messages = ActiveContext.Messages.Where(m => listOfUserIds.Contains(m.UserId)).ToList();
I've tried even the following approach:
Code: Select all
var guid1 = listOfUserIds[0];
var query = ActiveContext.Messages.Where(m => m.UserId.Equals(guid1));
var guid2 = listOfUserIds[1];
query = query.Concat(ActiveContext.Messages.Where(m => m.UserId.Equals(guid2)));
messages = query.ToList();
What's wrong with my code?
I use dotConnect for SQLite 5.3.583.
Sample project I've uploaded here
Click AddUsersAndMessages() button first to create database (on disk D) and then click ReadMessages() button (it uses all code above).