using (EntitiesContainer db = new EntitiesContainer())
{
Language language = db.Languages.SingleOrDefault(x => x.Culture == _session.Language);
Language language2 = new Language { Id = action.Language.Id };
Operation operation = new Operation { Id = action.Operation.Id };
//Operation operation = db.Operations.SingleOrDefault(x => x.Id == action.Operation.Id);
if (!language.Id.Equals(language2.Id))
{
db.Languages.Attach(language2);
action.Language = language2;
}
else
{
action.Language = language;
}
db.Operations.Attach(operation);
//db.ObjectStateManager.ChangeObjectState(operation, System.Data.EntityState.Unchanged);
action.Operation = operation;
//operation.Internals.Add(action);
action.CurrentDetail.Language = language;
action.CurrentDetail.Id = Guid.NewGuid();
action.Id = Guid.NewGuid();
db.SaveChanges();
}
Здравствуйте, я попробую весь этот сценарий в комментариях, чтобы связать мою существующую операцию с внутренним действием, которое унаследовано от действия ... но в любом из этих сценариев он выдает мне ошибку, как будто он хочет вставить новую операцию в БД (dbo.Operations может принимать значение «Действие» NULL), но сущность уже существует .. Может кто-нибудь, пожалуйста, дайте мне золотое правило .. вставлять сущность с отношением .. существующую или нет в EF. Это сводит меня с ума!
Cordialy,
Жюльен.