Random Dynamics CRM 2011一次性批量使用随机值更新测试记录

Random Dynamics CRM 2011一次性批量使用随机值更新测试记录,random,dynamics-crm-2011,dynamics-crm,odata,linqpad,Random,Dynamics Crm 2011,Dynamics Crm,Odata,Linqpad,在MS CRM开发环境实例中创建了1000条记录。需要一个新字段,该字段由实体自定义创建。我们需要该字段中每个记录的随机值。实现这一目标的支持方式有哪些 我想到的选择是 工作流(不允许随机值) 批量更新(不允许随机值) 添加随机值column(填充为=RAND())后,通过从excel导入进行批量更新。不确定这是否会更新现有记录 编写ODATA web资源html页面来完成此操作。(太脆弱,开发和调试时间和精力太长) 使用LinqPad 4和CRM 2011连接器插件实现相同的功能 以下在Lin

在MS CRM开发环境实例中创建了1000条记录。需要一个新字段,该字段由实体自定义创建。我们需要该字段中每个记录的随机值。实现这一目标的支持方式有哪些

我想到的选择是

  • 工作流(不允许随机值)
  • 批量更新(不允许随机值)
  • 添加随机值column(填充为=RAND())后,通过从excel导入进行批量更新。不确定这是否会更新现有记录
  • 编写ODATA web资源html页面来完成此操作。(太脆弱,开发和调试时间和精力太长)
  • 使用LinqPad 4和CRM 2011连接器插件实现相同的功能

  • 以下在LinqPad 4中使用CRM connector的解决方案花费了10分钟来处理大约700条记录

    //set up a random amount generator
    var r = new Random();
    //initialte with an arbitrary value
    decimal amount = 13; 
    //list all required records using linq
    var ats = (from at in psm_assettypeSet
    where at.psm_Amount.Equals(null)
    select at).ToList();
    //check count
    ats.Count().Dump();
    //check
    (ats.First() as psm_assettype).psm_Amount.Dump();
    //loop through
    foreach (psm_assettype at in ats)
    {
        //calculate amount
        amount = (decimal)r.Next(31);
        //check
        amount.Dump();
        //set amount, use XRM class properly
        at.psm_Amount = new Microsoft.Xrm.Sdk.Money(amount);
        //update object in memory
        UpdateObject(at);
    }
    //bulk update all records
    SaveChanges();
    //check success
    (ats.First() as psm_assettype).psm_Amount.Value.Dump();