SubSonic为存储过程返回ExecuteSingle

时间:2009-09-23 10:40:29

标签: stored-procedures subsonic

我希望通过以下代码使用存储过程返回单个ScPollOption项目:

public ScPollOption FetchPollOptionByID(int optionID)
    {
        StoredProcedure sp = SPs.ScPollOptionGetOptionByID(optionID);
        return sp;
    }

使用查询时,我会使用:

ExecuteSingle<ScPollOption>()

但SubSonic仅允许sp.ExecuteTypedList&lt;&gt;和sp.ExecuteScalar&lt;&gt;。

如何返回单个ScPollOption项?

由于

1 个答案:

答案 0 :(得分:2)

我知道它不是非常有吸引力,但是如果你能够使用LINQ扩展,这将有用:

sp.ExecuteTypedList<ScPollOption>().FirstOrDefault();

您还可以执行IDataReader并手动充气ScPollOption对象:

ScPollOption item;

using (IDataReader reader = sp.ExecuteReader())
{
    if (reader.Read())
    {
        item = new ScPollOption();
        item.SomeProperty = reader.GetValue(0);
        // Set additional properties
    }
}

return item;