Сначала у меня установлена следующая модель домена с использованием кода EF:
public class User
{
public virtual int Id { get; set; }
public virtual string Email { get; set; }
public virtual ICollection<UserProcessed> UsersProcessed { get; set; }
}
public class UserProcessed
{
public virtual int Id { get; set; }
public virtual DateTime CreatedAt { get; set; }
public virtual User user { get; set; }
}
Я пытаюсь перевести следующий запрос T-SQL в LINQ, и у меня возникли некоторые трудности:
SELECT u.Email
FROM Users u LEFT JOIN UsersProcessed up ON u.Id = up.UserId
WHERE up.UserId IS NULL
AND u.CreatedAt BETWEEN '2011-12-01' AND '2011-12-01'
Это вернет всех пользователей, которые не были обработаны (UserId не существует в таблице UsersProcessed).
IEnumerable<User> users = Database.Set<User>().Where(....).ToList();