Как устранить ошибку при загрузке файла с кодом C #? - PullRequest
1 голос
/ 31 октября 2019

Я пытаюсь загрузить изображения на сервер и сохранить их, чтобы я мог использовать их на сайте пользователя, но я получаю эту ошибку сопоставления и мне нужна помощь для ее решения.

Я попытался изменить имя свойстваот строки до IFormFile, но это не сработало. Затем я снова изменил его на строковое и создал другое свойство

public IFormFile Thumbnail 

, но я получил ошибку неоднозначности, чтобы решить эту проблему, я изменил свойство на

public IFormFile Thumbnailimg 

и то же самое для Bug и ShortVideo.

Model.cs

using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;

namespace BuildShow.Models
{
    public partial class Assets
    {
        public int Id { get; set; }
        public int TypeFid { get; set; }
        public int CategoryFid { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string ShortDescription { get; set; }
        public string LongDescription { get; set; }
        public string ArticleText { get; set; }
        public string Thumbnail { get; set; }
        public string Hero { get; set; }
        public string Bug { get; set; }
        public string ShortVideo { get; set; }
        public string VideoId { get; set; }
        public int TagFid { get; set; }
        public int ContributerFid { get; set; }
        public bool? Enabled { get; set; }
        public bool? Featured { get; set; }
        public bool? ShowOnHomePage { get; set; }
        public string SortOrder { get; set; }

        public virtual Categories CategoryF { get; set; }
        public virtual Contributor ContributerF { get; set; }
        public virtual Tags TagF { get; set; }
        public virtual AssetType TypeF { get; set; }


        public IFormFile Thumbnailimg { get; set; }
        public IFormFile Heroimg { get; set; }
        public IFormFile Bugimg { get; set; }
        public IFormFile ShortVideoup { get; set; }
    }
}

Controller.cs

if (id != assets.Id)
{
    return NotFound();
}

if (ModelState.IsValid)
{
    try
    {
        _context.Update(assets);
        await _context.SaveChangesAsync();
    }
    catch (DbUpdateConcurrencyException)
    {
        if (!AssetsExists(assets.Id))
        {
            return NotFound();
        }
        else
        {
            throw;
        }
    }

    return RedirectToAction(nameof(Index));
}

Ошибка:

InvalidOperationException: свойство 'Assets.Thumbnailimgимеет тип интерфейса ('IFormFile'). Если это свойство навигации, вручную настройте отношение для этого свойства, приведя его к сопоставленному типу сущности, в противном случае игнорируйте свойство, используя NotMappedAttribute или 'EntityTypeBuilder.Ignore' в 'OnModelCreating'.

1 Ответ

0 голосов
/ 31 октября 2019

Для сохранения в базе данных ваша модель должна соответствовать вашей таблице.

Вы не можете сохранить в своей базе данных тип интерфейса

Если вы не хотите использовать это свойство в себедБ вы можете добавить:

[NotMapped]
...