When you use IEnumerable as the input for a table-valued-parameter it actually needs to be an IEnumerable<SqlDataRecord>. Otherwise you will get a conversion error telling you that the runtime was unable to convert between IEnumerable`1 and IEnumerable`1 or similar errors.