title: InvalidCastException in constructor when passing the right parameters
body: <p>So I've got this method that creates an object fom a <code>DataRow</code>:</p>
  
  <pre><code>public Comment CreateComment(DataRow row)
  {
      if (row == null) return null;
      var id = (int) row["CommentPk"];
      var song = (int) row["SongFk"];
      var user = (int) row["AuthorFk"];
      var text = (string) row["Content"];
      var parent = (int?) row["ParentFk"];
      return new Comment(_provider, id, song, user, text, parent);
  }
  </code></pre>
  
  <p>And the constructor of <code>Comment</code> is:</p>
  
  <pre><code>public Comment(Provider provider, int id, int songid, int userid, string content, int? parentId)
  </code></pre>
  
  <p>It does crash on the constructor line. I can step (<code>F11</code>) to it:</p>
  
  <p><a href="https://i.stack.imgur.com/kbweB.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kbweB.png" alt="Exception Screenshot"></a></p>