EF4. Добавление объекта с отношением вызывает полный выбор таблицы - PullRequest
0 голосов
/ 21 мая 2010

Пример 1:

"autor.ComentariosWorkItens.Add (comentarioWorkItem);"

autor.ComentariosWorkItens заставляет EF4 загружать все ComentariosWorkItens.

Пример 2:

comentarioWorkItem.Usuario = autor;

Исправление заставляет EF загружать все ComentariosWorkItens тоже:

    private void FixupUsuario(Usuario previousValue)
    {
        if (previousValue != null && previousValue.ComentariosWorkItens.Contains(this))
        {
            previousValue.ComentariosWorkItens.Remove(this);
        }

        if (Usuario != null)
        {
            if (!Usuario.ComentariosWorkItens.Contains(this))
            {
                Usuario.ComentariosWorkItens.Add(this);
            }
        }
    }

Как я могу предотвратить это?

Ответы [ 2 ]

0 голосов
/ 27 июля 2010

Я отправил электронное письмо Джули Лерман. Вот ее ответ:

"Я думаю, что это известное (и УЖАСНОЕ) поведение со стороны EF. Я не уверен, что вам сказать. Возможно, вы захотите заглянуть на форумы MSDN, чтобы узнать, есть ли у кого-нибудь из команды что-нибудь сказать об этом. И, поскольку я нахожусь в процессе просмотра своей книги, прежде чем она будет напечатана, я проверю, чтобы убедиться, что у меня где-то есть предупреждение об этом!

0 голосов
/ 21 мая 2010

1: перевернуть:

comentarioWorkItem.Usario = autor;

2: Как EF должен ответить на этот вопрос:

previousValue.ComentariosWorkItens.Contains(this)

... не глядя в ComentariosWorkItens?

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