Мне больше нравится решение Крейга, но я бы предложил это:
Repository.GetUser(u => u.Logs, log);
Что будет возможно, если все ваши сущности будут производными от
public interface IEntity { public int Id { get; } }
Тогда метод будет похож на
public User GetUser<T, Y>(Func<T, IList<Y>> getlist, Y sample)
where T: IEntity
where Y: IEntity
{
return db.Users.Select(x => getlist(x).Any(y => y.Id == sample.Id)).FirstOrDefault();
}
Также, если мы возьмем идею S # arp Architecture, что если entity1.Id == entity2.Id (для постоянных сущностей), то Equals (entity1, entity2) - мы можем использовать getlist (x) .Contains (sample).