Pass by Entity or EntityId in repositories? Which is the best practice in getting data from repository? passing just by object or by Id?

public IQueryable&lt;Attendance&gt; GetByPersonId(int id)
    {
        return DbSet.Where(ps =&gt; ps.PersonId == id);
    }


or 

public IQueryable&lt;Attendance&gt; GetByPerson(Person person)
    {
        return DbSet.Where(ps =&gt; ps.Person == person);
    }


Are there any performance implication? Or is it a case to case basis? If so what are the cases that you might want to pass by object and not by Id?
If the return type is IQueryable&lt;Attendance&gt; then use a Person object because it implies that the method could use any of the passed Person object's properties to query other persons or other related objects.

If you want to find one person with Id, change the method's signature to tomething like this:

public Attendance GetByPersonById(int id)