问题是您试图将多个参数作为单个对象传递。
If you 看签名 http://msdn.microsoft.com/en-us/library/gg696545%28v=vs.113%29.aspx of Database.SqlQuery
你会看到这个:
public DbRawSqlQuery<TElement> SqlQuery<TElement>(
string sql,
params Object[] parameters
)
这太基础了,但是,当你看到params
在 C# 函数中,它表示“任何可选数量的参数”。这意味着您可以根据需要传递任意数量的参数。所以,就你而言,它就像这样:
_context.Database.SqlQuery<ProjectsModel>(
"exec dbo.[GetProjectDetailsBySectorAndSubSector] @sectorId,@subSectorId",
new SqlParameter("@sectorId", sectorid),
new SqlParameter("@subSectorId", subsectorid)
).ToList()
请注意,当您发现params Object[]
,您还可以传递一个数组而不是多个参数,即
_context.Database.SqlQuery<ProjectsModel>(
"exec dbo.[GetProjectDetailsBySectorAndSubSector] @sectorId,@subSectorId",
new Object[] { new SqlParameter("@sectorId", sectorid),
new SqlParameter("@subSectorId", subsectorid)}
).ToList()
根据您的代码的外观,这可能会更方便。