EF4 Сохранение объекта добавляет нового потомка - PullRequest
2 голосов
/ 20 августа 2010

Это структура сущностей 4.

CurrentProperty.FMVHistories.Add(FMVPresenter.GetFMVHistoryObject());
DataLayer.AccrualTrackingEntities repository = new AccrualTrackingEntities();
repository.Properties.AddObject(CurrentProperty);
repository.SaveChanges();

Прямо перед вызовом SaveChanges у CurrentProperty есть 1 объект в коллекции FMVHistories, как и должно быть. Сразу после сохранения у него есть два элемента, второй из которых, по-видимому, является копией первого, оба из которых имеют свои внешние ключи, установленные правильно.

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

FMVHistory имеет составной ключ из 3 полей, одно из которых является внешним ключом для свойства, к которому оно прикреплено.

Кто-нибудь знает, почему этот второй объект FMVHistory добавляется?

1 Ответ

1 голос
/ 20 августа 2010

Похоже, это было связано с тем, как EF обрабатывал даты.Дизайнер таблицы FMVHistory сделал ее с помощью составного ключа, частью которого было поле даты.По какой-то причине, когда EF вставил объект, он урезал секунды и тому подобное с даты, которую он вставил, что сломало много странных вещей.Я закончил тем, что убил составной ключ и установил личность, и теперь все отлично.

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