Entity Framework Вставка дочерних объектов - PullRequest
1 голос
/ 14 октября 2010

Я пытаюсь сохранить набор дочерних элементов, решение работает, но я хотел бы спросить более опытных людей, правильный ли подход?

public bool InsertNewActionHistory(ActionHistory actionHistory)
    {
        bool result = false;

        using (TransactionScope transactionScope = new TransactionScope())
        {
            this.ActionHistories.AddObject(actionHistory);

            if (actionHistory is ActionUpdate)
            {
                foreach (ActionUpdateDetail updateDetail in ((ActionUpdate)actionHistory).ActionUpdateDetails)
                {
                    ActionUpdateDetails.AddObject(updateDetail);
                }
            }

            this.CommitChanges();
            transactionScope.Complete();
            result = true;
        }

        return result;
    }

1 Ответ

0 голосов
/ 14 октября 2010

Если ActionUpdateDetail связано с ActionUpdate через свойство навигации, то вам не нужно 3/4 кода.Вы можете просто сделать:

public bool InsertNewActionHistory(ActionHistory actionHistory)
{
    this.ActionHistories.AddObject(actionHistory);
    return true;
}

Свойства навигации гарантируют, что связанные объекты будут добавлены вместе.

Обратите внимание, что это может быть сложнее, если вы используете прокси POCO или чистые POCO.Начинающим с EF, вероятно, следует придерживаться DB-first или model-first, пока вы не изучите правила дорожного движения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...