Extension method Query<T>
returns IEnumerable<T>
. So you definitely can't assign value of type IEnumerable<T>
to variable of type T
. You should take only one item from sequence:
MY_R = v.FirstOrDefault(); // or First, Single, SingleOrDefault
Actually with improved naming your code should look like:
var sql = "SELECT RID, RType, CC, RI FROM Db_View_R where RID = @id";
using(var conn = new SqlConnection(ConnectionString))
{
MY_R = conn.Query<R>(sql, new { id = Convert.ToInt16(requestID) })
.FirstOrDefault();
}
I still don't like names like R
(it probably should be Request
) but its already much more readable and safe (you should wrap connection usage in using
statement).