Шаблон генерации POCO по некоторым причинам игнорирует импорт функций, которые не имеют возвращаемого типа.Я действительно не знаю, почему они это сделали, но вы можете исправить это, изменив шаблон.Я помню, что я делал это тоже до того, как уронил всю вещь EF-POCO.Вы используете POCO с EF?Чтобы это исправить, вам нужно открыть файл шаблона .tt.По сути, я просто скопировал цикл для обычного импорта функций и немного его изменил.То, что я добавил, было
foreach (EdmFunction edmFunction in container.FunctionImports)
{
var parameters = FunctionImportParameter.Create(edmFunction.Parameters, code, ef);
string paramList = String.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray());
if (edmFunction.ReturnParameter != null)
{
continue;
}
#>
<#=Accessibility.ForMethod(edmFunction)#> void <#=code.Escape(edmFunction)#>(<#=paramList#>)
{
<#
foreach (var parameter in parameters)
{
if (!parameter.NeedsLocalVariable)
{
continue;
}
#>
ObjectParameter <#=parameter.LocalVariableName#>;
if (<#=parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"#>)
{
<#=parameter.LocalVariableName#> = new ObjectParameter("<#=parameter.EsqlParameterName#>", <#=parameter.FunctionParameterName#>);
}
else
{
<#=parameter.LocalVariableName#> = new ObjectParameter("<#=parameter.EsqlParameterName#>", typeof(<#=parameter.RawClrTypeName#>));
}
<#
}
#>
base.ExecuteFunction("<#=edmFunction.Name#>"<#=code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))#>);
}
<#
}
Вы можете найти связанный вопрос здесь: FunctionImport в платформе сущностей 4, выпуск