Pass by Entity or EntityId in repositories?
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)