测试demo,分别列出了获取组织服务需要的时间及查询所花时间,demo中是以查询一条用户记录的所有属性为例:
三种分别是:
1、CrmConnection
2、普通的方式(姑且这么叫吧,因为这是最常用的)
3、web api
static void Main(string[] args)
{
string result = "";
#region CrmConnection效率
DateTime dt1 = DateTime.Now;
OrganizationService org = new OrganizationService(new CrmConnection("crm"));
DateTime dt8 = DateTime.Now;
result = result + "CrmConnection实例服务时间 " + (dt8 - dt1).Milliseconds.ToString() + "\r\n";
Entity test = org.Retrieve("systemuser", new Guid("B3EB9804-6CD8-E511-9413-D04319595BED"), new Microsoft.Xrm.Sdk.Query.ColumnSet(true));
DateTime dt2 = DateTime.Now;
result = result + "CrmConnection查询时间 " + (dt2 - dt8).Milliseconds.ToString() + "\r\n";
#endregion
#region 普通方式获取OrganizationService
DateTime dt3 = DateTime.Now;
ClientCredentials clientCredentials = new ClientCredentials();
clientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential("administrator", "001", "skysoft");
IOrganizationService organizationServiceProxy = new OrganizationServiceProxy(new Uri("http://crmhost/XRMServices/2011/Organization.svc"), null, clientCredentials, null);
DateTime dt4 = DateTime.Now;
result = result + "普通方式获取组织服务时间 " + (dt4 - dt3).Milliseconds.ToString() + "\r\n";
Entity test1 = organizationServiceProxy.Retrieve("systemuser", new Guid("B3EB9804-6CD8-E511-9413-D04319595BED"), new Microsoft.Xrm.Sdk.Query.ColumnSet(true));
DateTime dt5 = DateTime.Now;
result = result + "普通方式查询数据时间 " + (dt5 - dt4).Milliseconds.ToString() + "\r\n";
result = result + "普通方式查询数据总时间 " + (dt5 - dt3).Milliseconds.ToString() + "\r\n";
#endregion
#region web api方式
DateTime dt6 = DateTime.Now;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://crmhost/api/data/v8.0/systemusers(B3EB9804-6CD8-E511-9413-D04319595BED)");
req.Credentials = new NetworkCredential("administrator", "", "skysoft");
req.Method = "Get";
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
StreamReader read = new StreamReader(res.GetResponseStream());
string result1 = read.ReadToEnd();
}
DateTime dt7 = DateTime.Now;
result = result + "web api查询时间 " + (dt7 - dt6).Milliseconds.ToString() + "\r\n";
#endregion
Console.WriteLine(result);
Console.ReadLine();
}