我试图将图像添加到我的数据库中的一个表中,但后来得到了例外:' 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}
我想知道为什么会发生这种情况以及如何解决它?