所有数据都没有使用Entity Framework Core插入到MySql实例中

使用MariaDb实例数据库(MySql的分支)和使用实体框架核心,给我一个我从未体验过的问题,因此,这篇文章我不知道发生了什么,希望你们中的一些人可能会以前经历过这个。

问题

采取以下方案。 我们有一张桌子,看起来像这样

News
-------------------------------------
| Id          | int      | not null |
| Title       | text     | not null |
| Content     | longtext | not null |
| Base64Image | blob     | null     |
-------------------------------------

使用C#,因为我的Web应用程序是在ASP.NET Core MVC中构建的,所以我创建了一个News对象的新实例,就像这样:

public IActionResult New (NewsViewModel model)
{
    using (var db = new DatabaseContext())
    {
        var news = new News()
        {
            Title = model.Title,
            Content = model.Content
        };

        db.News.Add(news);
        db.SaveChanges();
    }
}

正如我习惯于从常规的ASP.NET MVC应用程序,我希望这工作得很好。 尽管如此。

查看我的数据可视化器中的数据(在这种情况下使用HeidiSQL),我可以看到字符串Content被缩短。 我认为这可能只是HeidiSQL中的一个设置,不能显示完整的字符串,而只能显示x个字符。 现在,如果我将这个条目从数据库中取出来,我可以看到字符串IS实际上只有x个字符长,其中我的初始字符串可能是x * 5

这给我几个问题,因为Content字符串被缩短,但如果用户上传我可能想要转换为base64字符串的图像。 这些字符串往往很长(当然取决于数据),这也会缩短。

正如本文开头提到的:我完全不知道发生了什么。 我从来没有遇到过这个奇怪的问题,我似乎无法谷歌我的方式来解决方案。

任何人都可以伸出援助之手向我解释发生了什么事吗?

字符串内容的示例

在保存到数据库之前(我想要保存的实际字符串,输入到textarea前端) 490个字符

Lorem ipsum dolor坐在amet上,在每个人的面前,在和骰子上,在fastidii petentium explicari et cum。 Ex a saperet definiebas quaerendum pri。 Ei sed alii alterum alienum,mei graeco meliore pertinax eu,nec cu propriae molestie。 Id eum zril timeam,错误gloriatur consectetuer est,et vim ceteros assueverit。 在pri ancillae ponderum,ius vidit dicant laudem。 Ei usu corp officiis principes,offendit percipitur eos et,qui ne consetetur concludaturque。

保存到数据库后(保存后检索的实际字符串) 252个字符

Lorem ipsum dolor坐在amet上,在每个人的面前,在和骰子上,在fastidii petentium explicari et cum。 Ex a saperet definiebas quaerendum pri。 Ei sed alii alterum alienum,mei graeco meliore pertinax eu,nec cu propriae molest

额外

它看起来像是实际上保存到数据库的大约235-260个字符。 休息只是报废。 我有几个案例(238个字符,243,253等)

新闻模型

public class News
{
    public int Id { get; set; }

    [Display(Name = "Title", ResourceType = typeof(Resources.General))]
    public string Title { get; set; }

    [Display(Name = "Content", ResourceType = typeof(Resources.General))]
    public string Content { get; set; }

    public DateTime CreateDate { get; set; }

    [Display(Name = "ThumbnailImage", Description = "NewsThumbnailImageDescription", ResourceType = typeof(Resources.General))]
    public string Base64ThumbnailImage { get; set; }

    [Display(Name = "HeaderImage", Description = "NewsHeaderImageDescription", ResourceType = typeof(Resources.General))]
    public string Base64HeaderImage { get; set; }

    public string UserProfileUserName { get; set; }

    public UserProfile UserProfile { get; set; }
}

数据库表

在这里输入图像描述


临时解决方案

就目前而言,用于ASP.NET MVC Core的官方MySql.EntityFramework.Core库工作不正常,而且这是一个错误。 切换到社区版本: Pomelo.EntitytFramework.Core ,所有内容都像魅力一样。 这一个为我做了。

你可以在这里找到Pomelo仓库

链接地址: http://www.djcxy.com/p/36887.html

上一篇: All data is not inserted in MySql instance using Entity Framework Core

下一篇: Using Google's Mobile Vision to recognize Text in a static image?