gpt4 book ai didi

entity-framework - 如何从 MetadataWorkspace 中仅提取存储过程?

转载 作者:行者123 更新时间:2023-12-03 23:38:45 25 4
gpt4 key购买 nike

伙计们,有没有办法从 MetadataWorkspace 的存储模型 (SSDL) 中提取存储过程?

目前,我正在使用以下代码从 MetadataWorkspace 中提取存储过程(我正在检查 EdmFunction 对象的 BuiltInAttribute):

public static List<EdmFunction> TryGetSsdlFunctions( this MetadataWorkspace metadataWorkspace )
{
List<EdmFunction> functions = new List<EdmFunction>();

foreach ( EdmFunction function in metadataWorkspace.GetItems<EdmFunction>( DataSpace.SSpace ) )
{
MetadataProperty builtInAttribute = function.MetadataProperties.FirstOrDefault( p => p.Name == "BuiltInAttribute" );
if ( builtInAttribute != null && Convert.ToBoolean( builtInAttribute.Value.ToString() ) == false )
{
functions.Add( function );
}
}

return functions;
}

这里的问题是,除了存储过程之外,这还将返回数据模型中包含的所有函数。我只想要存储过程。我发现 IsComposable 属性的值存在差异,但我不确定这是否是可靠的标准。

提前致谢。

p.s:如果您认为有更智能的方法从工作区中提取存储过程,请分享。

最佳答案

这个变体怎么样?

public static List<EdmFunction> TryGetSsdlFunctions( this MetadataWorkspace metadataWorkspace ) { 
List<EdmFunction> functions = (from func in metadataWorkspace.GetItems<EdmFunction>(DataSpace.SSpace) )
where func.ReturnParameter == null
select func).ToList();
return functions;
}

关于entity-framework - 如何从 MetadataWorkspace 中仅提取存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5081350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com