使用LINQ过滤UserDefinedFunctionCollection
本文关键字:UserDefinedFunctionCollection 过滤 LINQ 使用 | 更新日期: 2023-09-27 18:09:05
在下面的代码中,是否有一种方法可以过滤UserDefinedFunctionCollection
的成员,这样我就不必在循环中执行if (!udf.IsSystemObject)
检查了?
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
private void DebugSqlUserDefinedFunctions(SqlCommand cmd)
{
Server svr = new Server(new ServerConnection(cmd.Connection));
foreach (Microsoft.SqlServer.Management.Smo.UserDefinedFunction udf in svr.Databases[cmd.Connection.Database].UserDefinedFunctions)
{
if (!udf.IsSystemObject)
{
System.Diagnostics.Debug.WriteLine(udf.Name);
}
}
}
可以这样做:
private void DebugSqlUserDefinedFunctions(SqlCommand cmd)
{
Server svr = new Server(new ServerConnection(cmd.Connection));
foreach (var udf in svr.Databases[cmd.Connection.Database].UserDefinedFunctions.Cast<Microsoft.SqlServer.Management.Smo.UserDefinedFunction>().Where(udf => !udf.IsSystemObject))
{
System.Diagnostics.Debug.WriteLine(udf.Name);
}
}
可能需要也可能不需要。cast <>()