Entity framework 使用EF在MVC.NET内核中上载图像

Entity framework 使用EF在MVC.NET内核中上载图像,entity-framework,model-view-controller,asp.net-core,local-database,Entity Framework,Model View Controller,Asp.net Core,Local Database,如何使用EF创建数据库,并将info和picture作为db中的列?我还需要上传到本地数据库的图像。我开始用微软的教程来创建应用程序,你可以上传“电影”。 我如何显示db中的一些照片,即使是像下面这样的示例(SeedData.cs)中的硬编码照片?您的问题非常广泛,但我将尝试回答要点。 要创建用于存储图像的表,您需要以下实体: public class ImageEntity { [Key] [DatabaseGenerated(DatabaseGener

如何使用EF创建数据库,并将info和picture作为db中的列?我还需要上传到本地数据库的图像。我开始用微软的教程来创建应用程序,你可以上传“电影”。
我如何显示db中的一些照片,即使是像下面这样的示例(SeedData.cs)中的硬编码照片?

您的问题非常广泛,但我将尝试回答要点。 要创建用于存储图像的表,您需要以下实体:

public class ImageEntity
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        public string ImageInfo { get; set; }
        public byte[] Image { get; set; }
    }
要上载图像,您需要先将其转换为字节[],然后将其转换为正确的格式,这与将任何对象添加到表中相同。要将转换为字节[],可以使用

public byte[] BitmapToByteArray(Bitmap image)
    {
        //converts bitmap to byteArray
        byte[] byteArray;
        using (MemoryStream memoryStream = new MemoryStream())
        {
            image.Compress(Bitmap.CompressFormat.Png, 0, memoryStream);
            byteArray = memoryStream.ToArray();
        }
        return byteArray;
    }

你的问题很广泛,但我将尝试回答主要问题。 要创建用于存储图像的表,您需要以下实体:

public class ImageEntity
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        public string ImageInfo { get; set; }
        public byte[] Image { get; set; }
    }
要上载图像,您需要先将其转换为字节[],然后将其转换为正确的格式,这与将任何对象添加到表中相同。要将转换为字节[],可以使用

public byte[] BitmapToByteArray(Bitmap image)
    {
        //converts bitmap to byteArray
        byte[] byteArray;
        using (MemoryStream memoryStream = new MemoryStream())
        {
            image.Compress(Bitmap.CompressFormat.Png, 0, memoryStream);
            byteArray = memoryStream.ToArray();
        }
        return byteArray;
    }

您的图像模型类:

        public class YourImageModel
        {
            [Key]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public int Id { get; set; }
            public byte[] Image { get; set; }
         }
在控制器中:

public async Task<IActionResult> UploadImage(YourImageModel yourImageModel, IFormFile imageToBeUploaded)
                {
                    if (!ModelState.IsValid)
                    {
                        return View(yourImageModel);
                    }

                   if (imageToBeUploaded != null)
                   {
                      using (var memoryStream = new MemoryStream())
                      {
                        await imageToBeUploaded.CopyToAsync(memoryStream);
                        var imageToBeUploadedByteArray = memoryStream.ToArray();
                        yourImageModel.Image= imageToBeUploadedByteArray ;
                      }
                    }

                    _dbContext.YourImageModel.Add(yourImageModel)
                    await _dbContext.SaveChangesAsync();
                    return View();
                }
公共异步任务上载映像(YourImageModel YourImageModel,IFormFile imageToBeUploaded)
{
如果(!ModelState.IsValid)
{
返回视图(yourImageModel);
}
如果(imageToBeUploaded!=null)
{
使用(var memoryStream=new memoryStream())
{
等待图像被上传。复制到同步(memoryStream);
var imageToBeUploadedByteArray=memoryStream.ToArray();
yourImageModel.Image=imageToBeUploadedByteArray;
}
}
_dbContext.YourImageModel.Add(YourImageModel)
wait_dbContext.saveChangesSync();
返回视图();
}

您的图像模型类:

        public class YourImageModel
        {
            [Key]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public int Id { get; set; }
            public byte[] Image { get; set; }
         }
在控制器中:

public async Task<IActionResult> UploadImage(YourImageModel yourImageModel, IFormFile imageToBeUploaded)
                {
                    if (!ModelState.IsValid)
                    {
                        return View(yourImageModel);
                    }

                   if (imageToBeUploaded != null)
                   {
                      using (var memoryStream = new MemoryStream())
                      {
                        await imageToBeUploaded.CopyToAsync(memoryStream);
                        var imageToBeUploadedByteArray = memoryStream.ToArray();
                        yourImageModel.Image= imageToBeUploadedByteArray ;
                      }
                    }

                    _dbContext.YourImageModel.Add(yourImageModel)
                    await _dbContext.SaveChangesAsync();
                    return View();
                }
公共异步任务上载映像(YourImageModel YourImageModel,IFormFile imageToBeUploaded)
{
如果(!ModelState.IsValid)
{
返回视图(yourImageModel);
}
如果(imageToBeUploaded!=null)
{
使用(var memoryStream=new memoryStream())
{
等待图像被上传。复制到同步(memoryStream);
var imageToBeUploadedByteArray=memoryStream.ToArray();
yourImageModel.Image=imageToBeUploadedByteArray;
}
}
_dbContext.YourImageModel.Add(YourImageModel)
wait_dbContext.saveChangesSync();
返回视图();
}

我已经编辑了这个问题,我看到了它是如何工作的,但是缺少了一些东西,我猜这个问题已经解决了吗?应该看到什么?我已经编辑了这个问题,我看到了它是如何工作的,但是缺少了一些东西,我猜这个问题已经解决了吗?我们应该看到什么?