为什么"' System.Data.Entity.Infrastructure.DbUpdateException'发生在EntityFramework.dll"添加图片时发生?

时间:2016-11-16 22:13:29

标签: c# sql-server entity-framework

我试图将图像添加到我的数据库中的一个表中,但后来得到了例外:' System.Data.Entity.Infrastructure.DbUpdateException'发生在EntityFramework.dll

这是创建表格的对象,图像是byte[],就像在它的模型中一样(首先由ado代码生成现有数据库,在数据库中生成#&#) 39; sa varbinary(max)),

List<ValidationResult> result = _auctionController.Create(
            new Auction
            {
                ProductId = chosenProduct.Id,
                StartTime = dateTimePickerStart.Value,
                EndTime = dateTimePickerEnd.Value,
                Image = image
            });

这是验证和保存正在进行的方法,

    public List<ValidationResult> Create(Auction auction)
    {
        ValidationContext context = new ValidationContext(auction, null, null);
        List<ValidationResult> result = new List<ValidationResult>();
        bool valid = Validator.TryValidateObject(auction, context, result, true);

        if (valid)
        {
            _dbContext.Auctions.Add(auction);
            _dbContext.SaveChanges();
        }

        return result;
    }

拍卖结果有效,但在.SaveChanges();我收到上述错误。

我不知道但我做错了,在Google上搜索时,使用System.ComponentModel.DataAnnotations无法找到将图像添加到SQL Server数据库的任何内容我真的很想保持我的验证。

在将图像添加到表格和模型之前,相同的代码运行时没有任何错误。

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",       "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Auction()
        {
            CustomerAuction = new HashSet<CustomerAuction>();
        }

        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int ProductId { get; set; }

        [Column(TypeName = "smalldatetime")]
        public DateTime StartTime { get; set; }

        [Column(TypeName = "smalldatetime")]
        public DateTime EndTime { get; set; }

        public byte[] Image { get; set; }

        public virtual Product Product { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<CustomerAuction> CustomerAuction { get; set; }
  

我能找到的InnerExceptions:   &#39;((System.RuntimeType)context.ObjectType).DeclaringMethod&#39;抛出类型&#39; System.InvalidOperationException&#39;   + GenericParameterAttributes&#39;((System.RuntimeType)context.ObjectType).GenericParameterAttributes&#39;抛出类型&#39; System.InvalidOperationException&#39; System.Reflection.GenericParameterAttributes {System.InvalidOperationException}   + GenericParameterPosition&#39;((System.RuntimeType)context.ObjectType).GenericParameterPosition&#39;抛出类型&#39; System.InvalidOperationException&#39; int {System.InvalidOperationException}

我想知道为什么会发生这种情况以及如何解决它?

0 个答案:

没有答案