我正在尝试将图像上传到服务器并保存它们,以便可以在用户站点上使用它们,但是遇到此映射错误,需要帮助来解决。
我尝试将属性名称从字符串更改为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')。如果它是导航属性,则通过将其强制转换为映射的实体类型来手动配置此属性的关系,否则,请使用“ OnModelCreating”中的NotMappedAttribute或“ EntityTypeBuilder.Ignore”忽略该属性。
答案 0 :(得分:0)
为了保存到数据库中,您的模型需要反映您的表。
您不能将接口类型保存到数据库中
如果您不想在数据库中使用此属性,则可以添加:
[NotMapped]