метод.

я есть проект SqlServer с очень простым тестом для Table-Valued-Function: -

[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;
}

Обратите внимание, что в настоящее время открытое соединение закомментировано. После развертывания я могу выполнить так в SQL:

SELECT * FROM [dbo].[TestConn](1)

Все работает отлично.

Теперь я раскомментируюcon.open() и это не с: -

Доступ к данным не разрешен в этом контексте. Либо контекст является функцией или методом, не помеченным с помощью DataAccessKind.Read или SystemDataAccessKind.Read, либо является обратным вызовом для получения данных из метода FillRow функции с табличной таблицей, либо является методом проверки UDT.

Я не вижу, в чем проблема, функция TestConn получилDataAccessKind.Read.

Кто-нибудь знает какие-либо другие причины для получения этой ошибки?

Ответы на вопрос(2)

Ваш ответ на вопрос