метод.
я есть проект 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
.
Кто-нибудь знает какие-либо другие причины для получения этой ошибки?