3

我正在尝试使用以下代码将实体保存到我的数据库中:

    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);
    }
4

1 回答 1

5

您必须将新实体附加到上下文中。尝试:

context.ElectronicSignatureTypes.Add(electronicSignatureType);
context.SaveChanges();
于 2012-01-22T00:22:22.237 回答