有时候,在 Dynamics CRM Plugin 中通过 linq 查询数据会比较慢,可以通过采用在 C# plugin 中直接调用数据库存储过程的方式来提高效率,具体过程如下:
1.新建一个存储过程:
ALTER PROCEDURE [dbo].[p_Sample]
AS
BEGIN
SELECT COUNT(dbo.Table.Id) FROM dbo.Table
WHERE
dbo.Table.Name LIKE '张%'
END
2.在 Plugin 中调用存储过程:
string sProc = "p_Sample";
string sqlConnection = "Data Source=.;Initial Catalog=DataBaseSample;User ID=sa;PassWord=123456";
using (SqlConnection conn = new SqlConnection(sqlConnection))
{
SqlCommand cmd = new SqlCommand(sProc, conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dt = new DataSet();
adapter.Fill(dt);
if(dt.Tables[].Rows[][] != null)
{
return (int)dt.Tables[].Rows[][];
}
else
{
return ;
}
}