Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在ASP.NETMVC中使用AutoMapper编辑实体时映射实体_Asp.net Mvc_Entity Framework_Asp.net Mvc 4_Automapper - Fatal编程技术网

Asp.net mvc 如何在ASP.NETMVC中使用AutoMapper编辑实体时映射实体

Asp.net mvc 如何在ASP.NETMVC中使用AutoMapper编辑实体时映射实体,asp.net-mvc,entity-framework,asp.net-mvc-4,automapper,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Automapper,我有这样一个视图模型: public class CityModel { public int Id { get; set; } [Required] public int ProvinceId { get; set; } [Required] public string Caption { get; set; } public string Description { get; set; } } 以及一个实体: public class

我有这样一个视图模型:

public class CityModel
{
    public int Id { get; set; }

    [Required]
    public int ProvinceId { get; set; }

    [Required]
    public string Caption { get; set; }

    public string Description { get; set; }
}
以及一个实体:

public class City : BaseEntity
{
    public int ProvinceId { get; set; }
    public string Caption { get; set; }
    public string Description { get; set; }

    public virtual Province Province { get; set; }
}
以及一个基本实体:

public abstract class BaseEntity
{
    public int Id { get; set; }

    public DateTime CreatedOn { set; get; }
    public string CreatedBy { set; get; }

    public DateTime ModifiedOn { set; get; }
    public string ModifiedBy { set; get; }
}
我想使用AutoMapper在编辑操作中将一个CityModel类型的对象映射到一个City类型的对象

[HttpPost]
public ActionResult Edit(CityModel model)
{
    if (ModelState.IsValid)
    {
        var entity = _cityRepository.GetCity(model.Id);
        entity = model.ToEntity();
        var operationStatus = _cityRepository.Edit(entity);
        if (operationStatus.IsSuccess) operationStatus = _cityRepository.Save();

        if (operationStatus.IsSuccess)
            RedirectToAction("Index");
    }
    ViewBag.ProvinceId = new SelectList(_provinceRepository.Provinces, "Id", "Caption", model.ProvinceId);
    return View(model);
}
实体是:

public static City ToEntity(this CityModel model)
{
    return Mapper.DynamicMap<CityModel, City>(model);
}
公共静态城市实体(此城市模型)
{
返回Mapper.DynamicMap(模型);
}
最后,使用以下代码创建从CityModel到City的地图:

Mapper.CreateMap<CityModel, City>()
              .ForMember(des => des.Caption, op => op.MapFrom(src => src.Caption.ToPersianContent()))
              .ForMember(des => des.Description, op => op.MapFrom(src => src.Description.ToPersianContent()));
Mapper.CreateMap()
.ForMember(des=>des.Caption,op=>op.MapFrom(src=>src.Caption.ToPersianContent())
.ForMember(des=>des.Description,op=>op.MapFrom(src=>src.Description.ToPersianContent());
当我想从城市模型映射到城市时,从数据库中获取城市。城市对象中继承的数据正确:

映射之后,我希望保留原始继承的映射和automapper ignore映射此基本属性,但将null和默认值设置为此属性:


我相信您在“ToEntity”中调用了错误的重载。您必须传入现有实体:

 DynamicMap<TSource, TDestination>(TSource source, TDestination destination)
DynamicMap(TSource-source,TDestination-destination-destination)