title: C# Data Access GetAll() methods with many parameters
body: <p>It's common to have methods like one below in the data access layer:</p>
  
  <pre><code>    Tuple&lt;int, IList&lt;Media&gt;&gt; GetAllWithFilter(int? page, string folderName, string title, string fileName, string author, string keywordTitle, int type, int fileType, int rowsPerPage, Guid keywordId, string sortField = null, string sortDir = null);
  </code></pre>
  
  <p>And it get's messier and messier every time a new property is added</p>
  
  <p>What are the good practices to keep these methods readable and maintainable?</p>
  
  <p>Thank You</p>