【发布时间】:2013-07-26 03:09:08
【问题描述】:
我的问题与post 非常相关,但我无法将所有部分组装在一起。我正在尝试通过插件代码中的 Linq 使用 ServiceContext 对象、XrmServiceContext 获取 SystemUser,如下所示:
var serviceFactory = serviceProvider.GetOrganizationServiceFactory();
var service = serviceFactory.CreateOrganizationService(context.UserId);
using (var xrmServiceContext = new XrmServiceContext(service))
{
var user = xrmServiceContext.SystemUserSet
.Where(x => x.SystemUserId.Value == context.UserId)
.First();
}
但我得到以下InvalidCastException:
无法将“Microsoft.Xrm.Sdk.Entity”类型的对象转换为“Xrm.SystemUser”类型。
而通过CrmSvcUtil 生成的早期绑定类放在单独的程序集中(插件程序集除外)。
这很奇怪,好像我将生成的早期绑定类放在插件程序集中它工作得很好。
我的小研究让我创建了单独的 OrganizationServiceProxy 对象,但是当我已经使用 serviceFactory.CreateOrganizationService(context.UserId) 创建 IOrganizationService 时,为什么还要创建一个对象
那么如何通过将生成的代码保留在插件程序集之外来解决这个问题?
【问题讨论】:
标签: dynamics-crm-2011 dynamics-crm .net early-binding