AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2012, 11:01   #1  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
а зачем это делать?
Создать сущность можно 1 строкой.
В чем разница context.AddObject(entity1); или service.Create(entity1);
__________________
Мой блог https://procrm.tv
Старый 29.03.2012, 11:35   #2  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
а зачем это делать?
Создать сущность можно 1 строкой.
В чем разница context.AddObject(entity1); или service.Create(entity1);
ну вообще я пытаюсь сделать следующее:
создать SalesOrder только в том случае, если может быть создана его SalesOrderDetail.
руками проверять ВСЕ поля SalesOrderDetail есть нехорошо, поэтому есть идея делать это через систему, и если система не может создать SalesOrderDetail - отлавливать эксепшн и соответственно ничего не создавать.
правда в "несоздавании" SalesOrder сильно я не продвинулся, вот и ищу различные пути=)

p.s. на сколько я понимаю, service.create создает сущность сразуже.
если же мы используем context.addobject, то у нас еще есть возможность с ним работать, как с несозданным, до попадания его в систему. соответственно можно во время работы его из контекста выкинуть (неверное?) дабы он не создавался (если нам это стало ненужным).
просто задача стоит еще и с точки зрения прав доступа - если у текущего пользователя нет, скажем, права удалять и изменять SalesOrder, то сделав service.create и попытавшись его изменить/удалить, должна вылететь системная ошибка, чтоли, о правах доступа.
Старый 29.03.2012, 12:32   #3  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
А как можно выполнить эту проверку?
SalesOrderDetail не создать без SalesOrder.
Без него система всегда не сможет создать. Разве нет?
__________________
Мой блог https://procrm.tv
Старый 30.03.2012, 10:25   #4  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
А как можно выполнить эту проверку?
SalesOrderDetail не создать без SalesOrder.
Без него система всегда не сможет создать. Разве нет?
А не создавать SalesOrder, если SalesOrderDetail не может (по каким-либо причинам) быть создана?
проверять руками всю SalesOrderDetail неоптимально - любое изменение этой сущности, может сделать такую проверку неработающей.
Старый 30.03.2012, 12:22   #5  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
решение через проверку есть:

Guid newSalesOrderId = Guid.Empty;
newSO.Id = Guid.NewGuid();
newSalesOrderId = newSO.Id;
svcContext.AddObject(newSO);
//создали ордер. добавили в контекст

if(checkSalesOrderDetail(curSalesOrderDetail))//ручная проверка полей salesOrderDetail
{
//если все ОК, добавляем salesOrderDetail в контекст, связывая с ордером:
svcContext.AddRelatedObject
(
newSO,
new Relationship("order_details"),
curSalesOrderDetail
);
}
else
{
svcContext.DeleteObject(newSO);//иначе удаляем ордер из контекста
}
svcContext.SaveChanges();
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Leon's CRM Musings: Book Review: Microsoft Dynamics CRM 2011 Administration Bible Blog bot Dynamics CRM: Blogs 0 19.12.2011 12:11
crminthefield: Overview: Microsoft Dynamics CRM 4.0 Update Rollup 19 Blog bot Dynamics CRM: Blogs 0 26.08.2011 01:13
Danny Varghese: Dynamics CRM 2011 Licensing Blog bot Dynamics CRM: Blogs 0 18.05.2011 03:15
ukcrm: CRM 4.0 Client Upgrade To CRM 2011 Blog bot Dynamics CRM: Blogs 0 23.04.2011 07:11
dynamics-community.at: Linksammlung CRM 2011 Blog bot Dynamics CRM: Blogs 0 19.01.2011 21:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:19.