如何从数据库源中匹配GUID与从Queryexpression中匹配GUID

本文关键字:GUID 与从 Queryexpression 数据库 | 更新日期: 2023-09-27 18:03:00

我需要每30分钟创建一个调度器。这个调度器包含一个程序,它将获取今天创建的记录(包括GUID),然后使用web服务插入Dynamics CRM。从SQL Server数据库获取记录,我使用这个查询:

SELECT * FROM new_crmtable WHERE DATEDIFF(day, CreatedOn, GetDate()) = 0

因为这个调度程序每30分钟运行一次。每次执行这个程序时,它都会检查今天创建的新记录和旧记录。例如,今天下午12点25分创建了一条名为a的记录。这个程序第一次执行是在下午12:30。然后在中午12点45分。创建一个名为B的新记录。当程序在下午13点再次执行时。这个程序同时采用记录A和b。在Dynamics CRM中创建记录期间,它会给出一个错误消息。因为记录A已经创建了。错误说,你不能创建记录与重复GUID(请记住,我也采取GUID从SQL Server数据库,并插入到动态CRM与它的GUID)

为了避免错误,我需要检查记录是否已经在CRM上创建。为了从Dynamics CRM获得GUID,我使用QueryExpression。这是我的代码:

try
            {
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        try
                        {
                            Entity rs = new Entity("new_troubleticket");

                            OptionSetValue option = new OptionSetValue(100000001);
                            rs.Attributes.Add("new_systemsource", option);
                            Guid ticketid = new Guid(dt.Rows[i][0].ToString());
                            rs.Id = ticketid;

                            //FIRSTNAME
                            if (!string.IsNullOrEmpty(dt.Rows[i][1].ToString()))
                            {
                                rs["new_subject"] = dt.Rows[i][1].ToString();

            }
                                else
                                {
                                    rs["new_subject"] = null;
                                }
Queryexpression query = new QueryExpression { Entityname = "new_customentity", 
Columnset = new Columnset("new_customentityid")};
query.Criteria.AddCondition("CreatedOn", ConditionalOperator.Equal, Datetime.Now);
Entity Collection result = service.RetrieveMultiple(query)

你能告诉我如何匹配GUID从SQL Server数据库,与GUID从Queryexpression ?

如何从数据库源中匹配GUID与从Queryexpression中匹配GUID

只需按id:

添加一个条件来筛选
var g = Guid.NewGuid() //Replace this with your actual Id from the query
Queryexpression query = new QueryExpression { Entityname = "new_customentity", 
Columnset = new Columnset("new_customentityid")};
query.Criteria.AddCondition("new_customentityid", ConditionalOperator.Equal, g);
Entity Collection result = service.RetrieveMultiple(query)