积极答复者
CRM2011 Linq查询

问题
-
OrganizationServiceContext orgContext = new OrganizationServiceContext(orgService);
var accounts = from a in orgContext.CreateQuery<Account>()
select new Account
{
Name = a.Name,
Address1_County = a.Address1_County
};
foreach (var c in accounts)
{
result = c.Name;
}为什么运行到 foreach (var c in accounts)时就会报错呢。(我连接的是远程服务器在服务器上运行也是同样的错误)
orgService是用IOrganizationServiceFactory创建的。而不是像SDK例子中是用OrganizationServiceProxy转换来的。和这个有关系么?
错误:
类型“Microsoft.Xrm.Sdk.Entity”的对象无法转换为类型“OutPlugIn.Account”。
谢谢。
答案
全部回复
-
Uri uri = new Uri("xxxx"); ClientCredentials credentials = new ClientCredentials(); credentials.Windows.ClientCredential = new System.Net.NetworkCredential("username", "pwd", "domain"); OrganizationServiceProxy _proxy = new OrganizationServiceProxy(uri, null, credentials, null); _proxy.EnableProxyTypes(); IOrganizationService _serviceNew = (IOrganizationService)_proxy; result = ""; OrganizationServiceContext orgContext = new OrganizationServiceContext(_serviceNew); var accounts = from a in orgContext.CreateQuery<Account>() select new Account { Name = a.Name, Address1_County = a.Address1_County }; // int i =accounts.Count(); foreach (var c in accounts) { result = c.Name; }
试了一下,这样写就可以查询成功了。但是没太弄明白。黑体部分和直接用IOrganizationServiceFactory 创建的IOrganizationService有什么区别。难道要使用早期绑定方式就要用这种写法么?谢谢。知道的请告诉下。
- 已编辑 Dirk2011 2011年8月15日 8:56 格式