Использование DbContext.Database.SqlQuery<TElement>(sql,params) с универсальным типом
Я обнаружил, что снова и снова использую очень похожий набор кода для разных хранимых процедур.
SqlParameter[] parameters = {
new SqlParameter("@somevar", 123),
new SqlParameter("@othervar", 456)
}
List<MyClass> result;
using (MyContext contextName = new MyContext())
{
result = contextName.Database.SqlQuery<MyClass>("mystoredproc @somevar, @othervar", parameters).ToList();
}
И я подумал про себя, а почему бы не сделать стандартный набор кода, который проходит в хранимой процедуре и SqlParameter[]
Результат MyClass = getStoredProcResult («mystoredproc», параметры);
Где я борюсь, так это сделать SqlQuery универсальным.
я пытался использовать
result = contextName.Database.SqlQuery<object>(procname, parameters);
Тем не менее, я всегда просто получаю объект, и он не вернется обратно в MyClass, который я пытался использовать Type, но получаю при этом ошибку.
Есть ли что-то, что мне не хватает, или он просто не справляется с универсальным классом, и я обречен повторяться?