У меня есть функция, для которой я хочу вернуть новую сущность с уже прикрепленными дочерними сущностями. То, что я не хочу делать, это сначала создать их в базе данных. Я просто хочу создать новый экземпляр сущности, создать несколько новых дочерних сущностей и добавить их в родительскую сущность перед возвратом родительской сущности в функцию.
Я начал с этого кода;
public BusinessEntities.Event CreateEventWithDefaultActions(EventType eventType)
{
Facades.Event eventFacade = new Facades.Event();
IList<BusinessEntities.DefaultAction> defaultActions;
// new event
BusinessEntities.Event skeletonEvent = new BusinessEntities.Event();
skeletonEvent.EventType = eventType;
// load the default actions
defaultActions = eventFacade.LoadDefaultActionTypes(eventType);
// create a new action and attach to the event
foreach (BusinessEntities.DefaultAction defaultAction in defaultActions)
{
BusinessEntities.Action action = new BusinessEntities.Action();
if(!defaultAction.ActionTypeReference.IsLoaded)
defaultAction.ActionTypeReference.Load();
action.ActionType = defaultAction.ActionType;
skeletonEvent.Actions.Attach(action); // exception thrown
}
return skeletonEvent;
}
По сути, я создаю новую сущность Event, которая может иметь связанные сущности Action - затем пытаюсь загрузить некоторые действия в зависимости от их типа и присоединить сущности Action к праву Event. Когда строка кода skeletonEvent.Actions.Attach (action); выполняется следующее исключение;
Присоединение не является допустимой операцией, когда исходный объект, связанный с этим связанным концом, находится в добавленном, удаленном или отсоединенном состоянии. Объекты, загруженные с использованием опции слияния NoTracking, всегда отсоединяются.
Куда я иду не так?