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();
}
EF 4 entité d'insertion en relation avec l'entité existante
Bonjour I Try tout ce scénario dans le commentaire, pour lier mon opération existante à l'action interne qui a hérité d'une action .. mais dans l'un des ce scénario, il me jette une erreur comme il veut insérer une nouvelle opération dans le DB (dbo.Operations peut accepter "Action" valeur NULL) mais l'entité existe déjà .. Quelqu'un peut-il s'il vous plaît, donnez-moi la règle d'or .. insérer une entité avec relation .. existante ou non dans EF. Ça me rend fou!
Cordialement, Julien.
Salut RPM1984, je vais essayer .. vous comprends bien, mais je veux insérer une entité avec une relation existante existant pour ne pas mettre à jour une entité existante – Julien
Merci par le chemin – Julien
@Julien - pas de problèmes. Le "talon" est une relation existante. Vous avez juste besoin de créer un talon pour cela basé sur l'ID (que vous devriez savoir), l'attacher au graphique, puis mettre à jour la relation. Dites-moi comment vous allez. Le code de votre exemple est assez compliqué. Il est donc difficile de déterminer quelle entité doit être mise à jour. Peut-être que si vous screencapped la partie pertinente de votre EDMX, ce serait plus clair. – RPM1984