2012-05-23 5 views
1

Я пишу простое приложение, которое импортирует объекты в CRM. При передаче этого импорта мне нужно связать импортированные объекты (настраиваемый объект) с другими (также обычными) объектами.Crm 2011 - получение связанных объектов [N: N] (C#)

Нет проблем с новыми объектами, но когда я пытаюсь обновить, мне нужно удалить все ассоциации относительно импортированного объекта и воссоздать их на основе импортированных данных.

Как это сделать?

Я думал о том, чтобы получить все связанные объекты, а затем вызвать disassociate для каждого из них, но я застрял, пытаясь получить эти связанные объекты.

Как мне подойти к этому?

+0

Я думаю, что я нашел решение : – user1412690

+0

http://mscrmkb.blogspot.com/2010/12/crm-2011-retrieve-related-entity-data.html – user1412690

ответ

0

Предположим, что у вас есть студент Entity И вы хотите, чтобы скопировать студентов Курсы другому обычаю Entity, как вы сказали, названный CStudent
Вы можете использовать следующий код:

var scs = Context.new_Student_CourcesSet.Where(x => x.new_courceid == Cource.Id).ToList<new_Student_Cources>(); 

var removedsc = Context.new_new_CStudent_CourcesSet.Where(x => x.new_cstudentid == CStudent.Id).ToList<new_CStudent_Cources>(); 

EntityReferenceCollection relatedEntities = new EntityReferenceCollection(); 
EntityReferenceCollection removedrelatedEntities = new EntityReferenceCollection(); 
Relationship relationship = new Relationship(new_CStudent_Cources.EntityLogicalName); 

if (removedsc != null) 
{ 
    foreach (new_CStudent_Cources c in removedsc) 
    { 
     RemovedrelatedEntities.Add(new EntityReference(new_Cources.EntityLogicalName, (Guid)ar.new_courcesid)); 
    } 

    Service.Disassociate(CStudent.LogicalName, CStudnetid, relationship, RemovedrelatedEntities); 
} 

foreach (new_Student_Cources d in scs) 
{ 
    relatedEntities.Add(new EntityReference(new_Cources.EntityLogicalName, (Guid)d.new_courceid)); 
} 

Service.Associate(CStudent.LogicalName, CStudentid, relationship, relatedEntities); 
Смежные вопросы