ASP.Net Core保存base64字符串

asp.net-core asp.net-core-mvc entity-framework-core

我有一個Image模型:

public class Image
{
    [Key]
    public long ImagelId { get; set; }
    public string base64 { get; set; }
}

我使用如下:

public class CoreGoal
{
    [Key]
    public long CoreGoalId { get; set; }
    [Required]
    public string Title { get; set; }

    public virtual ICollection<Image> Images { get; set; }


    public CoreGoal()
    {

    }
}

我正在使用MySql數據庫。我打算將多個圖像存儲為每個CoreGoal的base64字符串。

每當我使用base64字符串發出POST請求時,它都會成功,但是在保存到數據庫時,字符串的大部分被切斷。

我使用錯誤的數據結構來存儲base64即字符串嗎?這是我的ASP.Net代碼中的問題還是MySql限制?

我怎樣才能解決這個問題?

更新:

我的存儲庫類:

public class CoreGoalRepository : ICoreGoalRepository
{
    private readonly WebAPIDataContext _db;

    public CoreGoalRepository(WebAPIDataContext db)
    {
        _db = db;
    }

    //Add new
    public void CreateCoreGoal(CoreGoal coreGoal)
    {
        _db.CoreGoals.Add(coreGoal);
        _db.SaveChanges();
    }

    //Get all
    public IEnumerable<CoreGoal> GetAllCoreGoals()
    {
        return _db.CoreGoals
            .Include(coreGoal => coreGoal.Benefits)
            .Include(coreGoal => coreGoal.Images)
            .ToList();
    }
}

public interface ICoreGoalRepository
{
    void CreateCoreGoal(CoreGoal coreGoal);
    IEnumerable<CoreGoal> GetAllCoreGoals();
}

我的控制器:

 [Route("api/[controller]")]
    public class CoreGoalController : Controller
    {
        private readonly ICoreGoalRepository _coreGoalRepository;

        //Controller
        public CoreGoalController(ICoreGoalRepository coreGoalRepository) {
            _coreGoalRepository = coreGoalRepository;
        }

        //Get methods
        [HttpGet]
        public IEnumerable<CoreGoal> GetAll()
        {
            return _coreGoalRepository.GetAllCoreGoals();
        }

        //Create
        [HttpPost]
        public IActionResult Create([FromBody] CoreGoal item)
        {
            if (item == null)
            {
                return BadRequest();
            }

            _coreGoalRepository.CreateCoreGoal(item);

            return CreatedAtRoute("GetCoreGoal", new { id = item.CoreGoalId }, item);
        }
     }

熱門答案

當您發布post請求時,還返回創建為JSON的對象,這樣您就可以看到URL,或者在帖子中放置一個斷點並查看base64字符串的值。

如果URL正常則為Db,因此您需要使用屬性[StringLength(length)]手動設置URL的最大大小



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow