c# – 使用Entity Framework Core未在MySql实例中插入所有数据
使用MariaDb实例数据库(
MySql的fork)并使用Entity Framework Core,给我一个我以前从未体验过的问题,因此这篇文章因为我不知道发生了什么,并希望你们中的一些人可能会以前经历过这个.
问题 采取以下方案.我们有一个看起来像这样的表 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. 这给我带来了一些问题,因为缩短了内容字符串,但是如果用户上传了我可能想要转换为base64字符串的图像.这些字符串往往很长(当然取决于数据),这也会缩短. 正如本文开头所提到的:我完全不知道发生了什么.我以前从未遇到过这个奇怪的问题,而且我似乎无法通过google方式找到解决方案. 任何人都可以伸出援助之手向我解释发生了什么事吗? 字符串内容的示例 在保存到db之前(我希望保存的实际字符串,在textarea前端输入)490个字符
保存到数据库后(保存后检索的实际字符串)252个字符
额外 它看起来一直保持在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; } } DB TABLE 解决方法
临时解决方案
目前的情况是,ASP.NET MVC Core的官方MySql.EntityFramework.Core库无法正常工作,这是一个错误.切换到社区版本:Pomelo.EntitytFramework.Core后,一切都像魅力一样.这个为我做了. 你可以找到Pomelo存储库here (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |