有时候,在 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[0].Rows[0][0] != null) { return (int)dt.Tables[0].Rows[0][0]; } else { return 0; } }