繁体   English   中英

MS Dynamics 365 CRM 在线 - 转储实体

[英]MS Dynamics 365 CRM online - dump entity

我是Dynamics 365的新手。我们使用的是Dynamics 365 CRM在线版。 我需要将几个实体转储到我们的本地 SQL 服务器。

我找到了很多示例,但不是整个实体(包括查找列)。

在这个(最相关的)示例中,什么对我不起作用:

  1. 我需要所有列的列表(我真的需要在 new Contact{} 中指定完整的列列表吗?)

  2. 在结果中获取查找值而不是 ID (guids)

     `var orgContext = new OrganizationServiceContext(service); // Retrieve the Contact records that we created previously. List<Contact> contacts = (from c in orgContext.CreateQuery<Contact>() where c.Address1_City == "New York" select new Contact { ContactId = c.ContactId, FirstName = c.FirstName, LastName = c.LastName }).ToList<Contact>(); Console.Write("Contacts retrieved, ");'

您可以使用 Dynamics 365 (CRM) 的 Excel 导出功能轻松完成此操作

只需将所有列添加到高级查找视图。

  1. 高级查找按钮

  2. 实体选择器(寻找)

  3. 编辑列

  4. 添加所有列以查看(有关更多说明,请参见下面的单独图片)。

  5. 查看结果

在此处输入图像描述

在此处输入图像描述

如果您有超过 100000 条记录,您可能会达到限制。

“我们即将在 Excel 文件中生成您的 Dynamics 365 数据(超过 5000 条记录)。如果超过 100000 条记录,则只会导出前 100000 条。”

除了购买 100000 限制外,您还可以使用XRM 工具箱中的导出到 Excel 工具,它可以帮助您无需任何编码即可获取所有记录。

虽然您正在做的是好的做法,即定义了select列表中提到的属性列表,但您可以使用以下语法 select 所有属性。 值得一提的是,这将对性能产生巨大影响。

List<Contact> contacts = (from c in orgContext.CreateQuery<Contact>()
                                   where c.Address1_City == "New York"
                                   select c).ToList<Contact>();

来到你的下一个问题 - 获取查找字段,为此你可以使用join 对于前。 使用以下语法从帐户中获取主要联系人查找。 这使用实体之间的主键和外键来连接。

var accountQuery = from account in context.CreateQuery("account")
                   join contact in context.CreateQuery("contact")
                   on account["primarycontactid"] equals contact["contactid"]
                   where account["name"] ==   "Some Company Name"
                    select new {
                           Name = account["name"],
                           Email = account["emailaddress1"],
                           Manager = contact
                      };

foreach (var account in accountQuery)
{
    Console.WriteLine(account.Name + " is run by: " + account.Manager["fullname"]);
}

阅读更多

使用 LINQ 查询是一种方式,还有其他方式,如 web api、fetchxml 和查询表达式来完成相同的工作。 您仍然必须捕获转储作业的最后一次运行时间,并使用大于上次运行时间戳的 createdon 和 modifiedon 时间戳过滤增量数据。

不用说,Activity 是最繁琐的实体,涉及多个表,如 Activity 指针、Activity 方等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM