尽管db.SaveChangesAsync()返回1,为什么数据库没有更新?

时间:2015-12-11 21:58:07

标签: c# sql-server asp.net-mvc entity-framework

创建一个方法,在更新到数据库之前,将图像生成为base64字符串。

我确定:

  • 上传的图片已生成为base64字符串成功。
  • 主键不重复。
  • 所有值均不为空。
  • await db.SaveChangesAsync()返回> 0

1

2

但数据库中的列名ImageString始终为null:

3

我的测试代码:

            using (var db = new VinaChannelDbContext())
            {   
                var images = UploadImages(topicId);
                var list = new List<TopicImages>();

                foreach (string image in images)
                {
                    string imageId = await GetId("ImageId");
                    list.Add(new TopicImages
                    {
                        Id = imageId,
                        TopicId = topicId,
                        ImageString = image,
                        UploadedDateTime = DateTime.Now
                    });
                }
                foreach (var item in list)
                {
                    db.TopicImages.Add(item);
                }
                return await db.SaveChangesAsync();
            }

你能解释一下为什么吗?

更新

public class TopicImages
{
    [Key]
    public string Id { get; set; }
    public string TopicId { get; set; }
    public string ImageString { get; set; }
    public DateTime UploadedDateTime { get; set; }
}

1 个答案:

答案 0 :(得分:0)

雅。我得到了答案。

这是因为列ImageString 不能包含以:data:image/ + extension + ;base64,开头的字符串(扩展名可能是:jpg,png,gif ...)

我删除了它们并再次尝试。它应该工作。

感谢阅读!