 repository interface:</p>

<pre lang="cs">
public interface ITaskRepository : IRepository&lt;Task, long&gt;
{
    List&lt;Task&gt; GetAllWithPeople(int? assignedPersonId, TaskState? state);
}</pre>

<p>It extends generic <strong>IRepository</strong> interface of ASP.NET Boilerplate. So, <strong>ITaskRepository</strong> inherently defines all these methods as default. It can also add it&#39;s own methods as I defined <strong>GetAllWithPeople(...)</strong>.</p>

<p>No need to create a repository for Person s