5

我有以下代码:

[SqlFunction(DataAccess = DataAccessKind.Read, SystemDataAccess = SystemDataAccessKind.Read)]
    public static int GetInt()
    {
        int retValue = 0;
        using (SqlConnection conn = new SqlConnection("context connection = true"))
        {
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select MyInt from SomeTable";
            object timeOut = cmd.ExecuteReader(); // <- error happen here

        }
        return retValue;

    }

我得到以下异常

cmd.ExecuteReader();

{“此语句已尝试访问受程序集限制访问的数据。”}

4

2 回答 2

9

作为旁注,如果您尝试访问使用 创建的临时表#,例如#tmp,您还需要放入SystemDataAccess = SystemDataAccess.Read. 解决此问题的另一种方法是使用公用表表达式来获取数据。

于 2013-12-13T21:14:04.173 回答
6

为了做到这一点,我需要将 DataAccess = DataAccess.Read 添加到函数属性中。

于 2013-04-02T18:23:02.263 回答