2014-05-25 45 views
0

我有得到相关的实体从CRM的一个问题。异常而检索相关实体

以下代码:

var conn = CrmConnection.Parse("my connection string"); 
var orgService = new OrganizationService(conn); 
var context = new MyServiceContext(orgService); 

... 
var myEntity = context.CreateQuery<new_myentity>().First(p => p.new_name == "some name"); 
myEntity.GetRelatedEntities(context, "relation name").ToList(); 

引发以下异常在HTE最后一行:

值 'Microsoft.Xrm.Client.Configuration.CrmConfigurationProvider,Microsoft.Xrm.Client' 是未被识别为有效的类型或不是类型的“Microsoft.Xrm.Client.Configuration.CrmConfigurationProvider”。

+0

听起来像是你缺少一个参考。 http://dotnetinside.com/en/type/Microsoft.Xrm.Client/CrmConfigurationManager/6.0.0.0 –

+0

我有参考Microsoft.Xrm.Client.dll – filip

+0

我敢肯定,我们遇到了类似的错误,唯一的解决方案是安装所引用的DLL到GAC(本机[s]的运行SSIS包上)。 – mwardm

回答

0

试试这个......我无法测试,因为我没有在这台机器上的早期绑定类DLL,但我认为这可能会诀窍。请告诉我。

CrmConnection connection = CrmConnection.Parse("my connection string"); 
  
var proxy = new Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy(
connection.ServiceUri, 
connection.HomeRealmUri, 
connection.ClientCredentials, 
connection.DeviceCredentials); 
  
proxy.EnableProxyTypes(); 

IOrganizationService service = (IOrganizationService)proxy; 
var context = new CrmOrganizationServiceContext(service); 

var myEntity = context.CreateQuery<Entity>().First(p => p.new_name == "some name"); 
myEntity.GetRelatedEntities(context, "relation name").ToList(); 
+0

nope,同样的问题。也许我应该提到如果这有什么区别,我在SSIS包脚本任务中运行这个 – filip

0

当使用CRM SDK从SSIS自定义组件中获取相关实体时,我遇到了同样的问题。

说,从一个控制台应用程序,如果你不为microsoft.xrm.client装配在VS设置“复制本地”为True引用的程序集的属性也可以得到这个错误。

对于SSIS,要解决该错误,您需要将microsoft.xrm.client程序集复制到: {DriveLetter}:\ Program Files \ Microsoft SQL Server \ 110 \ DTS \ Binn目录(或{DriveLetter}: \ Program Files(x86)\ Microsoft SQL Server \ 110 \ DTS \ Binn(如果适用))。