如何从数据库源中匹配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 ?
只需按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)