Я использую C # для чтения CSV-файла и загрузки содержимого в CRM. Файл содержит информацию о нескольких объектах, которые, возможно, потребуется создать / обновить.
Я хочу использовать CrmServiceContext для внесения изменений и вызывать SaveChanges один раз в конце.
Проблема возникает, когда несколько строк ссылаются на одну и ту же учетную запись (или любую сущность, но я буду использовать учетную запись для этого примера), которой еще нет в базе данных.
Моя первоначальная идея состояла в том, чтобы запросить контекст AccountSet, чтобы узнать, существует ли учетная запись с заданным именем, и если нет, создать объект Account и использовать AddObject, чтобы добавить его в контекст. Это, однако, приведет к тому, что будет создано несколько копий, поскольку использование AddObject фактически не добавляет сущность в набор до тех пор, пока не будут сохранены изменения.
Я знаю, что мог бы просто делать SaveChanges после каждого нового объекта или использовать IOrganizationService.Create вместо этого, но это сделало бы загрузку более длительной, поэтому я бы предпочел избежать этого, если это возможно. Как лучше всего проверить, если объект с данным значением атрибута уже настроен для создания?