C# 连接CRM保存视图的C代码

C# 连接CRM保存视图的C代码,c#,dynamics-crm,crm,C#,Dynamics Crm,Crm,我遵循此链接“”并连接到CRM 下面的链接是连接到用户创建的视图的代码 string fetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' count='100'> <entity name='account'> <attribute name='ownerid' /> <attribute name='na

我遵循此链接“”并连接到CRM

下面的链接是连接到用户创建的视图的代码

string fetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' count='100'>
 <entity name='account'>
 <attribute name='ownerid' />
 <attribute name='name' />
 <attribute name='accountnumber' />
 <attribute name='accountid' />
 <order attribute='accountnumber' descending='true' />
 <link-entity name='systemuser' to='owninguser' alias='mainuser'>
 <attribute name='systemuserid'/>
 <attribute name='domainname' />
 <attribute name='fullname' />
 </link-entity >
 </entity>
 </fetch>"; 
string fetchXml=@”
"; 
如果您看到我必须传递XML代码才能从CRM获取数据,那么我只想传递视图名称并以csv文件的形式获取数据,而不是传递XML代码。我在Powershell中也做过同样的事情,但我需要在C#代码中做同样的事情


我只想传递视图名称的原因是,明天用户将在视图中进行任何修改,如果用户进行任何更改,我不必触摸代码,因此我需要使其动态化,其次,在获得数据后,如何在缓冲区中创建csv文件(无需在计算机上实际创建)然后导出到任何基于云的服务。

您需要大量代码,但没有显示自己的代码。请阅读本文:

首先,这里有一个方法,可以根据视图名称和实体名称从保存的视图中获取FetchXML:

using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Tooling.Connector;
using System.Linq;

private string getFetchXml(IOrganizationService svc)
{
    var query = new QueryExpression
    {
        EntityName = "userquery",
        ColumnSet = new ColumnSet("userqueryid", "name", "fetchxml"),
        Criteria = new FilterExpression
        {
            FilterOperator = LogicalOperator.And,
            Conditions =
            {
                new ConditionExpression
                {
                    AttributeName = "name",
                    Operator = ConditionOperator.Equal,
                    Values = {"My View"}
                },
                new ConditionExpression
                {
                    AttributeName = "returnedtypecode",
                    Operator = ConditionOperator.Equal,
                    Values = { "account" }
                }
            }
        }
    };

    var result = svc.RetrieveMultiple(query);
    var view = result.Entities.FirstOrDefault();
    var fetchXml = view.GetAttributeValue<string>("fetchxml");
    return fetchXml;
}
使用Microsoft.Xrm.Sdk;
使用Microsoft.Xrm.Sdk.Query;
使用Microsoft.Xrm.Tooling.Connector;
使用System.Linq;
私有字符串getFetchXml(IOOrganizationService svc)
{
var query=newqueryexpression
{
EntityName=“userquery”,
ColumnSet=新列集(“userqueryid”、“name”、“fetchxml”),
条件=新筛选器表达式
{
FilterOperator=逻辑运算符。和,
条件=
{
新条件表达式
{
AttributeName=“name”,
运算符=条件运算符。相等,
值={“我的视图”}
},
新条件表达式
{
AttributeName=“returnedtypecode”,
运算符=条件运算符。相等,
值={“帐户”}
}
}
}
};
var result=svc.RetrieveMultiple(查询);
var view=result.Entities.FirstOrDefault();
var fetchXml=view.GetAttributeValue(“fetchXml”);
返回fetchXml;
}

您需要大量代码,却没有显示自己的代码。请阅读本文:

首先,这里有一个方法,可以根据视图名称和实体名称从保存的视图中获取FetchXML:

using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Tooling.Connector;
using System.Linq;

private string getFetchXml(IOrganizationService svc)
{
    var query = new QueryExpression
    {
        EntityName = "userquery",
        ColumnSet = new ColumnSet("userqueryid", "name", "fetchxml"),
        Criteria = new FilterExpression
        {
            FilterOperator = LogicalOperator.And,
            Conditions =
            {
                new ConditionExpression
                {
                    AttributeName = "name",
                    Operator = ConditionOperator.Equal,
                    Values = {"My View"}
                },
                new ConditionExpression
                {
                    AttributeName = "returnedtypecode",
                    Operator = ConditionOperator.Equal,
                    Values = { "account" }
                }
            }
        }
    };

    var result = svc.RetrieveMultiple(query);
    var view = result.Entities.FirstOrDefault();
    var fetchXml = view.GetAttributeValue<string>("fetchxml");
    return fetchXml;
}
使用Microsoft.Xrm.Sdk;
使用Microsoft.Xrm.Sdk.Query;
使用Microsoft.Xrm.Tooling.Connector;
使用System.Linq;
私有字符串getFetchXml(IOOrganizationService svc)
{
var query=newqueryexpression
{
EntityName=“userquery”,
ColumnSet=新列集(“userqueryid”、“name”、“fetchxml”),
条件=新筛选器表达式
{
FilterOperator=逻辑运算符。和,
条件=
{
新条件表达式
{
AttributeName=“name”,
运算符=条件运算符。相等,
值={“我的视图”}
},
新条件表达式
{
AttributeName=“returnedtypecode”,
运算符=条件运算符。相等,
值={“帐户”}
}
}
}
};
var result=svc.RetrieveMultiple(查询);
var view=result.Entities.FirstOrDefault();
var fetchXml=view.GetAttributeValue(“fetchXml”);
返回fetchXml;
}

您可能对@AmitKumarGhosh感兴趣:为什么要反思?他只需
将其对象序列化为XML并调用适用的web服务即可。@harshu288您能否提供有关如何与web服务对话的代码。我知道你提供了链接,但是你的实现细节会很有帮助。你可能对@AmitKumarGhosh感兴趣:为什么要反思?他只需
将其对象序列化为XML并调用适用的web服务即可。@harshu288您能否提供有关如何与web服务对话的代码。我知道你提供了链接,但是你的实现细节会很有帮助。