DbContext.SaveChanges ();не выдает ошибку, но не добавляет сущность в базу данных - PullRequest
3 голосов
/ 22 января 2012

Я пытаюсь сохранить сущность в своей базе данных, используя этот код:

    public void Add(object entity)
        {
            DbContext.Entry(entity).State = System.Data.EntityState.Added;
            DbContext.SaveChanges();
        } 

Я проверил, и если что-то не так (например, поле сущности является нулевым, которое не может быть пустым вбаза данных) выдает ошибку.Я заполнил все необходимые поля и назвал этот код.Это не дало ошибку.Однако сущность также не была добавлена ​​в базу данных.Как я могу узнать, где DbContext.SaveChanges ();происходит ошибка без сообщения об ошибке?

Ниже приведен код, который вызывает функцию Add ().

  public void StoreElectronicSignatureType(ElectronicSignatureTypeModel model)
    {
        var RSA = new System.Security.Cryptography.RSACryptoServiceProvider();
        var parameters = RSA.ExportParameters(false);
        model.modulus = Convert.ToBase64String(parameters.Modulus);
        model.exponent = Convert.ToBase64String(parameters.Exponent);
        model.privatekey = RSA.ToXmlString(true);

        ElectronicSignatureType electronicSignatureType = new ElectronicSignatureType();
        Entity entity =  GetEntity(model.entity);
        electronicSignatureType.Entity = entity;
        electronicSignatureType.HashAlgorithm = model.hashAlgorithm;
        electronicSignatureType.Exponent = model.exponent;
        electronicSignatureType.Modulus = model.modulus;
        electronicSignatureType.Version = model.version;
        //electronicSignatureType.EntityId = entity.EntityId;
        electronicSignatureType.PrivateKey = StrToByteArray(model.privatekey);
        Add(electronicSignatureType);
    }

1 Ответ

5 голосов
/ 22 января 2012

Вы должны прикрепить новый объект к контексту. Попробуйте:

context.ElectronicSignatureTypes.Add(electronicSignatureType);
context.SaveChanges();
...