SqlFunction falha ao abrir a conexão de contexto, apesar do DataAccessKind.Read present
Eu tenho um projeto SqlServer com um teste muito simples para uma função com valor de tabela: -
[SqlFunction(TableDefinition = "forename nvarchar(50)", FillRowMethodName = "TestFillRow", DataAccess = DataAccessKind.Read)]
public static IEnumerable TestConn(int ID)
{
using (SqlConnection con = new SqlConnection("context connection=true"))
{
//con.Open();
yield return "Anthony";
}
}
public static void TestFillRow(object obj, out string forename)
{
forename = (string)obj;
}
Observe que o Open on the connection está comentado no momento. Uma vez implantado, posso executar o seguinte no SQL: -
SELECT * FROM [dbo].[TestConn](1)
Tudo funciona bem.
Agora descomente ocon.open()
e falha com: -
acesso aos dados não é permitido neste contexto. O contexto é uma função ou método não marcado com DataAccessKind.Read ou SystemDataAccessKind.Read, é um retorno de chamada para obter dados do método FillRow de uma função com valor de tabela ou é um método de validação UD
Não vejo qual é o problema, a função TestConn temDataAccessKind.Read
.
Alguém conhece outras razões para obter este erro?