从数据库拉取 Blob 映像时出现 Linq 查询错误.对象必须实现 IConvertible

本文关键字:对象 错误 查询 IConvertible 实现 Linq 数据库 Blob 映像 | 更新日期: 2023-09-27 18:33:53

我的查询返回一个错误,指出"对象必须实现IConvertible"。 错误发生在 上。FirstOrDefault() 行。 我正在尝试从数据库中提取 blob 映像并将其返回到 ajax 调用。 我已经寻找了 2 天来寻找答案,但找不到任何东西。

        [HttpGet]
        //[Authorize]
        public ActionResult getChartInfo(string ticker)
        {
            var db = new MarketSymmetricsSite.msxxdbDB();
            System.Linq.IQueryable<string> gQuery = (System.Linq.IQueryable<string>)(from mg in db.Markets where mg.tickerID == ticker select mg.pGraph);
            string mGraph = gQuery.FirstOrDefault(); ;
            byte[] test = new byte[mGraph.Length];
            char[] CharArray = mGraph.ToCharArray();
            byte[] ByteArray = new byte[CharArray.Length];
            for (int i = 0; i < CharArray.Length; i++)
            {
                ByteArray[i] = Convert.ToByte(CharArray);
            }
            return Json(ByteArray, JsonRequestBehavior.AllowGet);
        }

从数据库拉取 Blob 映像时出现 Linq 查询错误.对象必须实现 IConvertible

您需要使用 var,然后从二进制转换图像,以便现在成为图像文件

var img = (from mg in db.Markets where mg.tickerID == ticker select mg.pGraph).FirstOrDefault();
va rconvertedimage = ByteArrayToImage(img.Image.ToArray());

为了解决这个问题,我所要做的就是将数据库中的数据类型从 blob 更改为二进制,瞧。 希望这将帮助任何可能需要它的人。