Contrainte d'Intégrité référentielle violation lors de la tentative de définir un FK à null

Je suis en train de mettre à jour une entité dans EF6. J'ai lu que si je veux changer une ForeignKey bien, je puis vous assurer la Propriété de Navigation est la bonne, ou la valeur null.

J'ai pris la valeur null approche, mais je reçois encore la Contrainte d'Intégrité Référentielle Exception:

A referential integrity constraint violation occurred: The property value(s) of 'Contact.idContact' on one end of a relationship do not match the property value(s) of 'Entity.id_EntityContactInfo' on the other end.

Mais vous pouvez le voir dans le débogueur, cette Entité.Le Contact est null, alors je crois que cela ne devrait pas être jeter.

Contrainte d'Intégrité référentielle violation lors de la tentative de définir un FK à null

Des Idées?

MODIFIER

C'est la façon dont l'entité est mise à jour:

public T CommitUpdate<T>(T obj) where T : class
    {
        _DbContext.Set<T>().Attach(obj);
        _DbContext.Entry(obj).State = EntityState.Modified;
        _DbContext.Commit();
        return obj;
    }
Pouvez-vous essayer de définir le FK id de la valeur à null?
Mais j'ai besoin de l'ID, et le compilateur l'habitude de permettre que son Non-Null
Il vous suffit de modifier la valeur de l'id sans la mise à jour de la valeur liquidative de la propriété.
Si je change la valeur de l'ID de celui que je veux, je reçois l'exception. Si je change la valeur de l'ID de celui que je veux et définissez la valeur liquidative de la Propriété null, je reçois l'exception.
Si vous avez FK valeur de l'id qui est non nullable et vous avez FK propriété que vous avez mis à null? Cela signifie que le Contact est nécessaire, non? Pouvez-vous vérifier si le FK colonne dans la base de données est nullable ou pas ?

OriginalL'auteur Simon | 2014-08-15