NotMapped prop一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性

时间:2017-10-16 21:49:33

标签: c# asp.net-mvc entity-framework

美好的一天......

我创建了一个具有[Notmapped] DataAnnotations属性的模型,我创建了另一个继承自此模型的类,具有相同的属性,但我添加了所需的DataAnnotations问题是当我删除时出现错误“一个或多个实体的验证失败有关详细信息,请参阅“EntityValidationErrors”属性。

我的模特:

        [Key]
    [Display(AutoGenerateField = true, AutoGenerateFilter = true, Description = "IDDescription", GroupName = "IDGroupName", Name = "IDName", ShortName = "IDShortName", Prompt = "IDPrompt", Order = 50, ResourceType = typeof(Resources.BaseEntity))]
    public long ID { get; set; }


    [StringLength(207, ErrorMessageResourceName = "StringTooMuch", ErrorMessageResourceType = typeof(Resources.BaseSlider))]
    [Required(AllowEmptyStrings = false, ErrorMessageResourceName = "DetailsRequired", ErrorMessageResourceType = typeof(Resources.BaseSlider))]
    [Display(Name = "Description", ResourceType = typeof(Resources.BaseSlider))]
    public string Description { get; set; }

    [NotMapped]
    public string ShortDescription
    {
        get
        {
            if (Description.Length <= 207)
            {
                return Description;
            }
            return Description.Substring(0, 207);
        }
    }

    [Display(Name = "HasBTN", ResourceType = typeof(Resources.BaseSlider))]
    public bool HasBTN { get; set; }

    [Display(Name = "Is Image Dark")]
    public bool IsDark { get; set; }

    [Display(Name = "Link", ResourceType = typeof(Resources.BaseSlider))]
    public string Link { get; set; }

    [Display(Name ="Slider Type")]
    public long SliderTypeID { get; set; }


    [NotMapped]
    //[ImageValidation(".jpg,.png,.japg", OriginalWidth = 1920, OriginalHeight = 600)]
    [Display(AutoGenerateField = true, AutoGenerateFilter = true, Description = "ImagePathDescription", Name = "ImagePathName", ResourceType = typeof(Resources.BaseMore))]
    public virtual HttpPostedFileBase ImagePathFile { get; set; }

    #endregion

    #region Relations

    public virtual IList<BaseSliderPhotoUpload> Photos { get; set; }

    public virtual BaseLookup SliderType { get; set; }

    #endregion

    public BaseSlider()
    {
        Photos = new List<BaseSliderPhotoUpload>();
    }

和我创建的课程:

public class BaseSliderCreate : BaseSlider
{

    #region Data


    [NotMapped]
    [Required]
    //[ImageValidation(".jpg,.png,.japg", OriginalWidth = 1920, OriginalHeight = 600)]
    [Display(AutoGenerateField = true, AutoGenerateFilter = true, Description = "ImagePathDescription", Name = "ImagePathName", ResourceType = typeof(Resources.BaseMore))]
    public override HttpPostedFileBase ImagePathFile { get; set; }

    #endregion

}
删除actionresult代码中的

  public ActionResult DeleteConfirmed(Guid id)
    {
        BaseSlider SliderObject = db.Sliders.Where(x => x.GUID == id && x.Deleted == null).FirstOrDefault();
        SliderObject.Deleted = DateTime.Now;
        SliderObject.DeletedByID = _CurrentUser.ID;

        // Delete All Photos
        DeletePhoto DeletePhoto = new DeletePhoto();



        var DeletedPhotoName = new List<string>();
        foreach (var name in SliderObject.Photos)
        {
            DeletedPhotoName.Add(name.FileName);
        }

        if (DeletePhoto.PhotoDeleted("Slider", DeletedPhotoName))
        {
            try
            {
                db.SliderPhotos.RemoveRange(SliderObject.Photos);
                db.Entry(SliderObject).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                ErrorList.Add(ex.Message);
                throw;
            }
        }
        else
        {
            ErrorList.Add(DeletePhoto.ErrorMessage);
        }

        ViewBag.ErrorList = ErrorList;



        return RedirectToAction("Delete", new { id = SliderObject.GUID });
    }

当我保存更改时出现错误

  

一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。

我检查过我发现EntityValidationErrors是需要ImagePathFile ..

感谢帮助我和我的辩护人帮助我的英语不好

0 个答案:

没有答案