c# - 在 CRM 4.0 中检索单个 Guid

标签 c# dynamics-crm dynamics-crm-4

我是 CRM(4.0 版) 的新手,我正在尝试根据给定年份(也存储在实体中)返回“yearid”指南。到目前为止,我有:

    public static Guid GetYearID(string yearName)
    {

        ICrmService service = CrmServiceFactory.GetCrmService();

        // Create the query object.
        QueryExpression query = new QueryExpression("year");
        ColumnSet columns = new ColumnSet();
        columns.AddColumn("yearid");
        query.ColumnSet = columns;       

        FilterExpression filter = new FilterExpression();

        filter.FilterOperator = LogicalOperator.And;
        filter.AddCondition(new ConditionExpression
        {
            AttributeName = "yearName",
            Operator = ConditionOperator.Equal,
            Values = new object[] { yearName}
        });

        query.Criteria = filter;

    } 

但我的问题是:


A)除此之外还有什么代码可以实际存储 Guid?
B) 使用 QueryExpression 是最有效的方法吗?

最佳答案

回复:B)使用 sql 可能更快(我不知道快多少,甚至不知道),但我认为在 99% 的情况下,QueryExpression 在性能方面是完全可以接受的。

回复:A)你已经很接近了,我已经完成了下面的代码。

public static Guid GetYearID(string yearName) 
{
    ICrmService service = CrmServiceFactory.GetCrmService(); 

    // Create the query object. 
    QueryExpression query = new QueryExpression("year"); 

    //No need to ask for the id, it is always returned
    //ColumnSet columns = new ColumnSet(); 
    //columns.AddColumn("yearid");
    //query.ColumnSet = columns;

    FilterExpression filter = new FilterExpression(); 

    filter.FilterOperator = LogicalOperator.And; 
    filter.AddCondition(new ConditionExpression 
    { 
        AttributeName = "yearName", 
        Operator = ConditionOperator.Equal, 
        Values = new object[] { yearName} 
    }); 

    query.Criteria = filter; 

    //We have to use a retrieve multiple here
    //In theory we could get multiple results but we will assume we only ever get one
    BusinessEntityCollection years = service.RetrieveMultiple(query);

    DynamicEntity year = (DynamicEntity)years.BusinessEntities.First();

    return ((Guid)year["yearid"]);
}  

关于c# - 在 CRM 4.0 中检索单个 Guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12952918/

相关文章:

javascript - Lookup 字段的 DataValue 始终为空

c# - WCF 错误处理程序异常日志记录

c# - MVC C# 中的验证

c# - SqlDataAdapter.FillSchema() 方法不起作用

dynamics-crm - 想学习 Microsoft-Dynamics CRM。请给动力学初学者建议?

c# - 客户关系管理 2011 : How to find out the origin of a trigger for a plugin?

javascript - 通过js改变鼠标光标

sql - 如何在 SQL Server 2005 数据库中使用 T-SQL 用零填充 NVARCHAR 字段?

c# - 如何在 ASP.net Web 表单应用程序中处理 False/Empty 查询?

c# - 如何从 Microsoft CRM 中的 Guid 查找客户实体逻辑名称